- 0
- 0
- 约7.61千字
- 约 21页
- 2026-03-10 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年程序员技术面试题集含答案
一、Java基础(10题,共50分)
题目1(5分)
请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`的区别。
答案:
`volatile`关键字主要用于确保变量的可见性和禁止指令重排序,但不保证原子性。具体作用如下:
1.可见性:当一个线程修改了`volatile`变量的值时,其他线程能够立即看到这个修改。
2.禁止指令重排序:`volatile`变量前的操作不会被移动到变量后执行,变量后的操作不会被移动到变量前执行。
与`synchronized`的区别:
-性能:`volatile`比`synchronized`轻量级,开销更小。
-适用场景:`volatile`适用于变量被多个线程读取但只被单个线程修改的场景;`synchronized`适用于变量被多个线程同时修改的场景。
-原子性:`volatile`不保证复合操作的原子性,而`synchronized`可以保证复合操作的原子性。
题目2(5分)
在Java中,`HashMap`和`ConcurrentHashMap`的主要区别是什么?
答案:
`HashMap`和`ConcurrentHashMap`的主要区别如下:
1.线程安全性:`HashMap`是非线程安全的,而`Concur
原创力文档

文档评论(0)