请详细描述 ConcurrentHashMap 中 put 方法的完整执行流程,包括插入数据、扩容和链表转红黑树的触发时机与先后顺序。
考察说明
考察对 ConcurrentHashMap 并发修改、扩容与树化机制的理解
回答思路
- 准确描述 put 流程:计算哈希、定位桶、处理空桶、同步链表或树
- 说明扩容触发条件(元素数量超过阈值)以及扩容与树化的先后关系(先尝试扩容,失败才树化)
- 解释扩容时数据迁移的双阶段:先建立 nextTable 并转移,再让旧表新写入指向新表
- 提及树化阈值(链表长度≥8)和扩容阈值(容量*0.75),并能说明为何树化前先扩容
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。