后端岗位面试题更新 2026-08-05

既然 ConcurrentHashMap 用到了 synchronized 关键字和 CAS,为什么还要加上 volatile 关键字呢,非加不可吗?

美团后端开发互联网/IT技术原理方案权衡Java

考察说明

考察对 volatile 内存语义在并发容器中必要性的理解

回答思路

  1. 指出 volatile 用于保证可见性与禁止指令重排序
  2. 结合节点数组或 Node 的 val/next 字段说明用途
  3. 解释 synchronized 与 CAS 不能完全替代 volatile 的原因
  4. 能说明不加 volatile 可能导致的可见性或结构破坏风险
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。