- 0
- 0
- 约5.63千字
- 约 10页
- 2026-06-30 发布于河北
- 举报
阿里「变态级」面试题及详细答案(技术+行为面全覆盖)
一、技术深挖类(阿里一面/二面必问,追着源码/底层不放)
1.题:HashMap(JDK1.8)为什么链表转红黑树的阈值是8?加载因子0.75凭什么?
答案:
首先说阈值8——这不是拍脑袋定的,是基于泊松分布计算的:链表长度达到8时,节点碰撞的概率已经降到0千万分之六),再长的话查询效率(O(n))会明显下降,而红黑树的查询是O(logn),这时候转树才划算。但为什么不是7或9?因为要留缓冲:如果阈值是7,链表频繁在7和8之间波动,会导致树和链表反复转换(震荡),反而消耗性能;8是一个“稳定的临界值”,能避免频繁切换。
然后是加载因子0.75——这是时间和空间的折中。如果加载因子太大(比如1.0),数组利用率高了,但链表会更长,碰撞概率飙升,查询变慢;如果太小(比如0.5),碰撞少了,但数组会频繁扩容,浪费内存。0.75刚好是泊松分布中“碰撞概率”和“空间利用率”的平衡点,阿里内部实践也证明,这个值在高并发场景下最稳定。
面试官追问:如果我把加载因子改成0.5,会有什么问题?
答:扩容频率会翻倍,比如初始容量16,原本到12个元素扩容,现在到8个就扩容,内存开销增加50%,但查询效率提升不明显(因为原本12个元素时链表长度
您可能关注的文档
最近下载
- 2025一年级数学下册无纸笔课件ppt(1).pptx
- 石家庄学院《高等数学(D)》2025 - 2026学年第一学期期末试卷.docx VIP
- 2025室内管道支架及吊架25S402.pdf VIP
- 膝关节病课件PPT.pptx VIP
- B∕T 13402-2019 大直径钢制管法兰(高清可复制).pdf VIP
- 湖南师范大学2024-2025学年第2学期《线性代数》期末试卷(B卷)及参考答案.docx
- 书本打包机机构设计.pdf VIP
- JCT 1011-2021 混凝土抗侵蚀防腐剂.docx VIP
- 2026年江苏无锡市中考化学考试真题及答案.docx VIP
- 《混凝土抗侵蚀防腐剂》.pdf VIP
原创力文档

文档评论(0)