2026年程序员面试技术题及参考答案解析.docxVIP

  • 0
  • 0
  • 约9.46千字
  • 约 29页
  • 2026-10-15 发布于福建
  • 举报

2026年程序员面试技术题及参考答案解析.docx

第PAGE页共NUMPAGES页

2026年程序员面试技术题及参考答案解析

一、Java基础(共5题,每题10分,总分50分)

第1题(10分)

题目:

请解释Java中的`volatile`关键字的作用和原理,并说明它与`synchronized`关键字的主要区别。在什么场景下优先使用`volatile`?

答案解析:

`volatile`关键字的作用:

1.内存可见性:确保一个线程对共享变量的修改对其他线程立即可见。

2.禁止指令重排序:编译器和处理器不会对`volatile`变量进行重排序,保证代码执行顺序。

`volatile`原理:

-CPU缓存一致性协议:`volatile`变量访问时会刷新缓存,保证主内存和线程缓存的一致性。

-内存屏障:在变量读/写操作前后插入内存屏障,防止指令重排序。

与`synchronized`的区别:

|特性|`volatile`|`synchronized`|

||--|--|

|性能|轻量级,开销小|重重量,线程阻塞,开销大|

|功能|保证可见性,禁止重排序|保证可见性、原子性、有序性|

|用途|简单共享变量

文档评论(0)

1亿VIP精品文档

相关文档