你了解 HashMap 吗?请说明 JDK 1.7 与 JDK 1.8 在结构、插入、扩容以及并发安全上的主要区别。
考察说明
考察对 HashMap 关键实现差异的理解与版本敏感性
回答思路
- 能说明 1.7 数组+链表与 1.8 数组+链表+红黑树的结构差异
- 能说明链表转红黑树的条件:链表长度≥8 且数组容量≥64
- 能说明 1.7 头插法与 1.8 尾插法,以及死循环问题的差异
- 能说明扩容时 1.8 利用高低位拆分,避免 rehash 开销
- 能说明两者均非线程安全,但在并发下 1.8 不会形成循环链表
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。