- 0
- 0
- 约3.92千字
- 约 10页
- 2026-03-21 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年Java开发面试题及答案:后端开发与系统设计能力测试
一、Java基础与并发编程(5题,每题6分,共30分)
1.Java内存模型(JMM)中的`volatile`关键字与`synchronized`的区别?
答案:
-`volatile`:
-通过内存屏障和禁止指令重排实现可见性和有序性,但不保证原子性。
-适用于轻量级同步场景(如单变量状态标记)。
-JVM不保证`volatile`变量的读写原子性,需要配合`Atomic`类使用。
-`synchronized`:
-通过`Monitor`锁实现完全互斥,保证可见性、有序性和原子性。
-适用于复杂同步场景(如计数器、多步操作)。
-性能开销高于`volatile`,但功能更全面。
解析:`volatile`适用于性能敏感的读/写场景,`synchronized`适用于需要完整锁保护的逻辑。实际开发中需根据需求选择。
2.`CAS`(Compare-And-Swap)的原理及其应用场景?
答案:
-原理:三参操作(内存值、期望值、新值),仅当内存值与期望值一致时才更新为新值,否则重试。
-应用:`Atomic`类(如`AtomicInteger`)实现无锁并发计数器、版本号锁等。
解析:`CAS`避免了锁竞争,但存在ABA问题,需配合`Atomic
原创力文档

文档评论(0)