- 0
- 0
- 约6.38千字
- 约 16页
- 2026-10-21 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年Java面试高频题解析与考点总结
一、Java基础(5题,每题10分,共50分)
1.题目:请解释Java中的`volatile`关键字的作用及其与`synchronized`的区别。
答案:
`volatile`关键字主要用于确保变量在多线程环境下的可见性和禁止指令重排序,但不保证原子性。
-可见性:当一个线程修改了`volatile`变量时,其他线程能够立即看到这一变化,因为`volatile`会强制将修改写入主内存。
-禁止指令重排序:编译器和处理器会保证`volatile`变量的读写顺序与代码中的顺序一致。
-与`synchronized`的区别:
-性能:`volatile`比`synchronized`轻量级,因为它不涉及线程阻塞和唤醒,仅通过内存屏障实现可见性保证。
-原子性:`volatile`只能保证单个变量的读写原子性,而`synchronized`可以保证代码块的原子性。
-应用场景:`volatile`适用于无状态或无并发依赖的共享变量,`synchronized`适用于需要复杂同步控制的场景。
解析:
Java内存模型(JMM)中,`volatile`通过内存屏障(MemoryBarrier)实现可见性和禁止重排序,但无法替代锁机制。面试官常通过对比两者考察候选人对并发编程的理解深
原创力文档

文档评论(0)