# 1. JMM 1.0(JSR 133)内存模型的影响范围 A 弱化 volatile B 修正 volatile 语义、引入 final 安全发布、确立 happens-before ✓ 正确答案 C 移除锁 D 与并发无关
# 2. JMM 与 CPU 缓存一致性(MESI)协议的关系 A 完全相同 B MESI 覆盖 JMM C 无关 D JMM 是语言级抽象,MESI 是硬件缓存一致性协议,JMM 通过屏障映射到硬件 ✓ 正确答案
# 4. JMM 形式化(Java Memory Model Formalism) A 类加载 B 内存布局 C 语法 D 哪些执行轨迹与读值合法,以及禁止 out-of-thin-air ✓ 正确答案
# 5. JMM(Java Memory Model)的 happens-before 规则在虚拟线程间的可见性保证如何 A 比平台线程弱 B 更强 C 虚拟线程无需同步 D 与平台线程完全一致 ✓ 正确答案
# 6. JMM(Java Memory Model)的核心概念与 happens-before 原则 A 任意线程写都可见 B 读先于写 C 随机序 D volatile 写 happens-before 后续对该 volatile 的读 ✓ 正确答案
# 7. double-checked locking 在 JDK 5+ 的正确实现与 volatile 关键作用 A 无作用 B 禁止构造与赋值间的重排,防止读到半初始化对象 ✓ 正确答案 C 加速 D 使对象可变
# 10. release 写入与 acquire 读取如何建立可见性链,和完整 volatile 读写相比允许哪些重排序 A 更少重排 B 相同 C 无重排 D 更多重排(无全序,只单向约束) ✓ 正确答案
# 12. volatile 写操作的内存屏障(Memory Barrier)在 x86 与 ARM 架构下的成本差异 A 相同 B 无差异 C x86(强序) D ARM(弱序,需更多显式屏障) ✓ 正确答案
# 15. 成功 release 后对后继线程的可见性由哪些内存语义保证,自定义同步器最容易漏掉什么 A 用 volatile/原子更新 state 并正确唤醒后继 ✓ 正确答案 B 注释 C 方法名 D 线程数
# 17. JDK 25 中 MemorySegment(外部内存 API)对堆外内存的可见性保证 A 自动可见 B 仅线程本地 C 永不可见 D 需同步或 VarHandle 内存序保证,与普通字段一致 ✓ 正确答案