请比较 JDK 1.7 与 1.8 中 ConcurrentHashMap 的实现差异,并说明链表与红黑树之间的转换触发条件。
考察说明
考察对 ConcurrentHashMap 版本差异的理解及容器结构转换机制
回答思路
- 能指出 1.7 基于分段锁(Segment)而 1.8 基于 CAS + synchronized 锁桶头节点
- 能说明 1.8 引入红黑树以优化冲突严重的桶的查询性能
- 能准确描述链表转红黑树的阈值(链表长度≥8 且桶数组长度≥64)及退化为链表的条件
- 能解释为何要先扩容而非在桶数组较小时直接树化
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。