文章目录
前言
此乃随笔, 用于记录ConcurrentHashMap的扩容逻辑, 这位大神 JDK1.8–深度分析CONCURRENTHASHMAP原理分析 的文章给了我莫大的鼓励。
顺带, 记录了HashMap的扩容细则。
至今为止, 我依旧没懂 ConcurrentHashMap 的扩容细则。
ConcurrentHashMap resize/rehash
1. 什么时候resize
跟HashMap一样, 使用
Node数组
, 数组有大小Capacity
;
数组元素上挂Node结点, 可以是单链表(不过8位), 可以是红黑树。
.
因为是并发HashMap, 没有size
字段(即时统计)。
加载因子loadFactor
, 1.8已經不再使用。
- 每个Node结点的长度
> 8
时;- 如果数组大小
< 64
, 优先扩容r
- 如果数组大小