2026年工程师面试宝典技术难题及答案.docxVIP

  • 1
  • 0
  • 约6.36千字
  • 约 18页
  • 2026-02-10 发布于福建
  • 举报

2026年工程师面试宝典技术难题及答案.docx

第PAGE页共NUMPAGES页

2026年工程师面试宝典:技术难题及答案

一、Java基础与并发编程(共5题,每题6分)

1.题目:

Java中`volatile`关键字的作用是什么?它与`synchronized`有什么区别?请结合实际场景说明。

答案与解析:

`volatile`关键字的主要作用是确保变量的可见性和禁止指令重排序,但不保证原子性。具体来说:

-可见性:当一个线程修改了`volatile`变量时,其他线程能够立即看到这个修改,因为`volatile`变量会强制刷新缓存。

-禁止指令重排序:编译器和处理器会保证`volatile`变量前后的操作不会被重排序,保证代码的执行顺序。

与`synchronized`的区别:

-性能:`volatile`比`synchronized`轻量级,开销更小,适用于变量读多写少的场景;`synchronized`会阻塞线程,适用于写操作频繁的场景。

-原子性:`volatile`只能保证单个变量的原子性,而`synchronized`可以保证代码块的原子性。

-应用场景:

-`volatile`:如`AtomicInteger`的CAS操作底层依赖`volatile`。

-`synchronized`:如银行转账场景,需要保证多个操作的原子性。

2.题目:

请解释Java中的CAS(Compare-

文档评论(0)

1亿VIP精品文档

相关文档