干法技术面试题及答案.docxVIP

  • 1
  • 0
  • 约5.13千字
  • 约 15页
  • 2025-12-01 发布于福建
  • 举报

第PAGE页共NUMPAGES页

干法技术面试题及答案

一、编程基础(5题,每题10分,共50分)

1.题目:

请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`关键字的主要区别。

答案:

`volatile`关键字主要用于确保变量在多个线程间的可见性和禁止指令重排序,但不保证原子性。

-可见性:当一个线程修改了`volatile`变量时,其他线程能够立即看到该变量的最新值。

-禁止指令重排序:编译器和处理器不会对`volatile`变量进行重排序,确保代码执行顺序与编写顺序一致。

与`synchronized`的区别:

-性能:`volatile`比`synchronized`轻量级,开销更小,适用于高并发场景下的状态标记(如`stop`、`flag`)。

-原子性:`volatile`只能保证单个变量的读/写原子性,而`synchronized`能保证复合操作(如`i++`)的原子性。

-内存语义:`volatile`提供弱内存屏障,而`synchronized`提供强内存屏障,后者更严格。

解析:

`volatile`的核心在于内存屏障和可见性保证,适用于简单的状态控制。`synchronized`通过锁机制实现更复杂的同步,但性能开销更大。在Java并发编程中,应根据场景选择合适的同步方式。

2.题目:

文档评论(0)

1亿VIP精品文档

相关文档