IT大公司面试题及详细答案.docxVIP

  • 1
  • 0
  • 约1.13万字
  • 约 13页
  • 2026-05-06 发布于河北
  • 举报

IT大公司面试题及详细答案

一、Java方向(阿里/腾讯/字节高频)

1.面试题:HashMap和ConcurrentHashMap的区别,为什么ConcurrentHashMap线程安全,JDK1.8做了哪些优化?

详细答案:

核心区别主要在线程安全、性能、底层实现三个方面,没有花里胡哨的理论,全是实际开发和面试必问的点:

①线程安全:HashMap完全线程不安全,多线程下put、resize时会出现死循环(JDK1.7)、数据覆盖问题;ConcurrentHashMap是线程安全的,不会出现上述问题,可用于多线程场景。

②性能:HashMap无锁,单线程下性能最优;ConcurrentHashMap有锁,但锁粒度做了优化,性能比传统的Hashtable(全表锁)高很多,多线程下效率远超Hashtable。

③底层实现及JDK1.8优化:

-HashMap:JDK1.7是“数组+链表”,JDK1.8引入红黑树(当链表长度超过8,数组长度≥64时,链表转为红黑树;长度小于6时,红黑树转回链表),目的是解决链表过长导致的查询效率低(O(n)→O(logn))。

-ConcurrentHashMap:JDK1.7用“分段锁(Segment)”,把数组分成多个Segment,每个Segment对应一把锁,多个线程操作不同Segment时互不干扰,锁粒

文档评论(0)

1亿VIP精品文档

相关文档