- 0
- 0
- 约9.46千字
- 约 29页
- 2026-10-15 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年程序员面试技术题及参考答案解析
一、Java基础(共5题,每题10分,总分50分)
第1题(10分)
题目:
请解释Java中的`volatile`关键字的作用和原理,并说明它与`synchronized`关键字的主要区别。在什么场景下优先使用`volatile`?
答案解析:
`volatile`关键字的作用:
1.内存可见性:确保一个线程对共享变量的修改对其他线程立即可见。
2.禁止指令重排序:编译器和处理器不会对`volatile`变量进行重排序,保证代码执行顺序。
`volatile`原理:
-CPU缓存一致性协议:`volatile`变量访问时会刷新缓存,保证主内存和线程缓存的一致性。
-内存屏障:在变量读/写操作前后插入内存屏障,防止指令重排序。
与`synchronized`的区别:
|特性|`volatile`|`synchronized`|
||--|--|
|性能|轻量级,开销小|重重量,线程阻塞,开销大|
|功能|保证可见性,禁止重排序|保证可见性、原子性、有序性|
|用途|简单共享变量
原创力文档

文档评论(0)