03 2019 档案
摘要:ReenTrantLock可重入锁(和synchronized的区别)总结 重入性: ReenTrantLock和synchronized都是可重入锁。 同一个线程每进入一次,锁的计数器+1,等到锁的计数器降为0时才释放锁。 实现: Synchronized是依赖于JVM实现的,而ReenTrant
阅读全文
摘要:不报错 会报错 ConcurrentModificationException 通过查看源码发现,引起异常是因为modCount和expectModCount不一致导致的 通过remove方法的源码发现 remove 调用 fastremove, fastremove中只是修改了modCount,
阅读全文
摘要:多线程并发访问单利模式需要双重检查,以防出现实例化两次Singleton实例的情形,如果是数据库连接池,初始化两次会导致第一次数据库连接已经使用,第二次发生异常错误。 方案一 方案二
阅读全文
摘要:SimpleDateformat 线程不安全 SimpleDateFormat 继承自 DateFormat, SimpleDateFormat中的parse方法override父类DateFormat的parse方法。DateFormat的父类提供了public setCalendar的方法 导致
阅读全文
摘要:1. [定义] 二叉排序树(二拆查找树)中,左子树都比节点小,右子树都比节点大,递归定义。 [性能] 二叉排序树的性能取决于二叉树的层数 最好的情况是 O(logn),存在于完全二叉排序树情况下,其访问性能近似于折半查找(见下图 a); 最差时候会是 O(n),比如插入的元素是有序的,生成的二叉排序
阅读全文
摘要:如果理解的有问题,欢迎大家指正。 https://www.cnblogs.com/webglcn/p/10587708.html jdk7的hashmap 由数组和链表组成,存在几个问题: 当key的hash碰撞频率高,导致链表内的数据过多,影响查询效率, 时间复杂度为O(n) 不同的key经过ha
阅读全文