后端岗位面试题更新 2026-08-05

请详细讲一下 HashMap 的扩容机制:为什么容量通常乘以 2?扩容后数组元素和链表/红黑树结构如何变化?

去哪儿旅行后端开发互联网/IT问题拆解技术原理Java

考察说明

考察对 HashMap 扩容机制及底层数据结构变化的理解

回答思路

  1. 说明扩容触发条件(size 超过 threshold)
  2. 解释容量乘 2 的原因(保持索引计算高效,分布均匀)
  3. 描述旧数组元素迁移到新数组的过程,包括链表拆分和红黑树退化
  4. 涉及多线程下扩容可能产生的问题(如 JDK7 头插法死循环)
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。