java设计模式-观察者模式
观察者模式指的是当存在一对多的场景的时候,一个对象发生了状态的变化之后,多个对象能够得到通知并且获得更新。 这个模式在一些pub/sub方式的中间件中很常见,例如消息的发布与订阅,MQTT的pub与sub。 但是如果真正的比较起来,跟pub/sub方式会存在一些区别,pub/sub的方式中,生产者和消费者中间还有一个b…
Tag · page 3 of 4
37 posts · All tags
观察者模式指的是当存在一对多的场景的时候,一个对象发生了状态的变化之后,多个对象能够得到通知并且获得更新。 这个模式在一些pub/sub方式的中间件中很常见,例如消息的发布与订阅,MQTT的pub与sub。 但是如果真正的比较起来,跟pub/sub方式会存在一些区别,pub/sub的方式中,生产者和消费者中间还有一个b…
懒汉模式
背景 有个controller,里面有个方法,在使用public修饰的时候,能够拿到类中定义的属性,在使用private的时候,取到的属性为null 调查 为public的时候,调试信息如下 其中的this对象,是正常的controller对象,并且agentBizService能够拿到正常的值,工作正常 当为priv…
背景 今天在写单测的时候,会涉及到测试多线程的部分,但是在测试的时候发现现象会诡异 子线程的逻辑还没有执行的时候,jvm就会退出,或者有的时候执行了一小部分,就会退出了。
InterProcessMutex 分布式锁 InterProcessMutex是常用的一个使用ZK的分布式锁,它会在我们指定的前缀下面创建类型为有序临时的临时节点,然后序号最靠前的节点会获取到锁。 如果某个持有锁的线程挂了之后,对应的节点就会被删除,如果这时候有线程在等待锁,就会获取到锁
--- ConcurrentHashmap ConcurrentHashmap整体跟hashmap差不多,主要的区别是线程安全,并且不支持key和value为null ConcurrentHashmap在插入元素的时候会使用synchronized,保证了写的线程安全。在扩容的时候,将表划分成一个个独立的区域,然后每个…
背景 前两天一个朋友面试,遇到了一个题目
Hashmap 1.hashmap的家族 能够看出,hashmap是map的一个实现类
tableSizeFor 该算法相当奇妙,目的是输入一个数字c,然后返回离它最近的且值大于它的2的n次幂,例如输入7,返回8,输入123,返回128。 首先定义一个变量n为c-1,至于为什么为c-1,之后会说到。 我们输入c=13来带入计算一下 这里我们可以回头看上面的第一步,n = c-1,如果不执行c-1的话,我们…
Spring中的事务,主要有以下几个参数 - value:事务名称 - transactionManager:事务管理器 - propagation:传播行为 - isolation:隔离级别 - timeout:超时时间,如果在超时时间内事务没有提交,则事务就会被终止(此处会有坑) - readOnly:是否只读事务…