美团Java后端高频面试题及详细答案(真实面试版).docxVIP

  • 1
  • 0
  • 约5.53千字
  • 约 8页
  • 2026-09-15 发布于河北
  • 举报

美团Java后端高频面试题及详细答案(真实面试版).docx

美团Java后端高频面试题及详细答案(真实面试版)

一、Java基础核心(美团一面必问)

1.HashMap和ConcurrentHashMap的区别?项目中如何选型?

详细答案:

1)线程安全:HashMap非线程安全,多线程put、扩容会出现数据覆盖、链表成环死循环问题;ConcurrentHashMap线程安全,是并发场景首选。

2)底层实现:JDK1.8两者底层都是数组+链表+红黑树。HashMap无锁;ConcurrentHashMap采用CAS+synchronized分段锁,只锁住当前链表/红黑树的头节点,锁粒度极细,并发性能高。

3)空值支持:HashMap允许一个key为null、多个value为null;ConcurrentHashMap不允许key和value为null,避免并发场景下空值歧义问题。

4)迭代机制:HashMap迭代器是快速失败(fail-fast),并发修改会抛异常;ConcurrentHashMap是弱一致性迭代,迭代过程中可感知部分数据变更,不抛异常。

业务选型:单线程本地缓存、临时数据存储用HashMap;接口并发、多线程任务、订单缓存统计等并发场景统一用ConcurrentHashMap。

2.wait和sleep的核心区别?

详细答案:

1)锁机制不同:wait是Object方

文档评论(0)

1亿VIP精品文档

相关文档