Java后端开发面试题精讲含答案.docxVIP

  • 0
  • 0
  • 约7.13千字
  • 约 24页
  • 2026-10-20 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年Java后端开发面试题精讲含答案

一、Java基础(5题,每题6分,共30分)

1.题目:

Java中的`volatile`关键字有什么作用?它与`synchronized`有什么区别?

答案:

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

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

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

与`synchronized`的区别:

-性能:`volatile`开销小,仅保证可见性和禁止重排序;`synchronized`是重量级锁,涉及锁状态和线程阻塞,性能开销大。

-原子性:`volatile`只能保证单个变量的原子性(如`i++`不是原子操作);`synchronized`可以保证复合操作的原子性。

解析:

`volatile`适用于读多写少的场景,如状态标记、计数器等。`synchronized`适用于写多或需要保护数据完整性的场景。

2.题目:

解释Java中的`StringBuilder`和`StringBuffer`的区别,以及为什么`StringBuilder`更常用?

答案:

-

文档评论(0)

1亿VIP精品文档

相关文档