美团点评Java面试题及详细答案.docxVIP

  • 2
  • 0
  • 约1.41万字
  • 约 14页
  • 2026-06-02 发布于河北
  • 举报

美团点评Java面试题及详细答案

一、Java基础(必问,侧重实操细节)

1.说说HashMap和ConcurrentHashMap的区别,美团业务中什么时候用后者?

答案:核心区别就3点,结合美团场景说更直观:

1.线程安全:HashMap完全线程不安全,多线程put/get会出现死循环、数据覆盖(比如美团订单并发提交时,用HashMap存临时订单会出问题);ConcurrentHashMap是线程安全的,底层用分段锁(JDK1.7)或CAS+synchronized(JDK1.8),不会出现线程安全问题。

2.性能:单线程下HashMap更快,因为没有锁开销;多线程下ConcurrentHashMap比Hashtable快(Hashtable是全局锁),美团高并发场景(比如秒杀、订单峰值)都用它。

3.功能:ConcurrentHashMap不允许key/value为null(避免空指针隐患,美团要求代码严谨性),HashMap可以;另外ConcurrentHashMap提供了更多原子操作,比如putIfAbsent,适合美团缓存场景(避免重复缓存)。

美团业务场景:订单列表缓存、用户会话存储、秒杀活动的临时库存存储,只要涉及多线程并发操作Map,都用ConcurrentHashMap,单线程场景(比如本地临时数据处理)用HashMap。

2.讲讲ThreadLoc

文档评论(0)

1亿VIP精品文档

相关文档