- 1
- 0
- 约5.21千字
- 约 7页
- 2026-07-24 发布于河北
- 举报
阿里大数据工程师(开发)全套面试题+真实口语化答案
一、Java基础(一面必考,大数据底层基础)
1、说一说HashMap底层原理,JDK1.7和1.8的核心区别?为什么要用红黑树?
参考答案:
HashMap底层本质就是数组+链表,核心作用是通过哈希算法实现快速存取。存数据的时候,先对key做hash运算,算出数组下标,如果下标位置没有数据,直接存入;如果有数据,就形成链表,发生哈希碰撞。
1.7和1.8改动挺大,我平时开发感触很深:
第一,底层结构不一样,1.7是数组+单向链表;1.8改成数组+链表+红黑树。
第二,插入方式不同,1.7用头插法,多线程环境下容易出现环形链表,直接死循环;1.8换成尾插法,规避了这个致命bug。
第三,扩容重hash逻辑优化,1.7扩容后所有数据都要重新计算hash;1.8直接根据高位0/1,把链表拆分成两个部分,不用全部重算,效率更高。
至于红黑树,主要是解决极端哈希冲突问题。如果大量key扎堆在同一个下标,链表会拉得很长,查询时间复杂度会从O(1)退化到O(n)。当链表长度超过8且数组容量大于64时,就转成红黑树,查询复杂度降到O(logn);后续节点变少低于6,又会退化回链表,平衡性能和内存占用。
2、简单讲下ConcurrentHashMap,怎么保证线程安全?
参考答案:
它是并发场景下的线程安全map,替代HashTable,性能比
您可能关注的文档
最近下载
- 成绩册-中华全国体育总会.pdf VIP
- 《中华人民共和国母婴保健法》《中华人民共和国母婴保健法实施办法》考核试题及答案.docx VIP
- OKUMA操作手册讲解OSP-P300.pdf VIP
- C522057【冲刺】2024年四川农业大学095132资源利用与植物保护《952资源与环境概论》考.pdf VIP
- ASTM F3173-18 飞机操纵特性Aircraft Handling Characteristics.pdf VIP
- 深圳育才中学初中新初一分班英语试卷含答案.doc VIP
- 深地深海探测技术与装备前沿.pptx VIP
- GB 28050-2025《预包装食品营养标签通则》深度解读.pptx VIP
- (正式版)DB65∕T 3320-2011 《北疆活化沙丘免灌造林技术规程》.pdf VIP
- 广东省ZHGC合作探讨-0706.pptx VIP
原创力文档

文档评论(0)