JDK HashMap
JDK HashMap 知识要点
- 数组 + 链表 + 红黑树(JDK 8)
- JDK 7 并发扩容时CPU占用高问题
- capacity, default table length 16
- 链表长度超过8时转红黑树
- 扩容阀值threshold = table length * load factor,kv健值对个数超过阀值时开始扩容
- table数组位置定位
1 | (h = k.hashCode()) ^ (h >>> 16) & (table.length -1) |
- JDK7扩容时链表中节点位置会反转,JDK8不会(死循环,cpu高的原因)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 石头记!