ConcurrentHashMap 源码学习
1、ConcurrentHashMap(int initialCapacity):
创建出的tab的length实际为 最小的大于(initialCapacity + (initialCapacity >>> 1) + 1)的2的n次幂
2、链表转红黑树的条件:
(1)tab的length大于等于64,如果小于64,先进行扩容 (2)链表长度大于等于8
3、判断是否需要转红黑树时并未加锁,因此实际转换时链表的长度可能已经大于8
ConcurrentHashMap 源码学习
1、ConcurrentHashMap(int initialCapacity):
创建出的tab的length实际为 最小的大于(initialCapacity + (initialCapacity >>> 1) + 1)的2的n次幂
2、链表转红黑树的条件:
(1)tab的length大于等于64,如果小于64,先进行扩容 (2)链表长度大于等于8
3、判断是否需要转红黑树时并未加锁,因此实际转换时链表的长度可能已经大于8