- 2
- 0
- 约6.27千字
- 约 17页
- 2026-10-19 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年程序员面试必问技术问题及答案
一、Java基础(共5题,每题2分)
1.题目:解释Java中的`volatile`关键字的作用和原理。
答案:
`volatile`关键字用于确保变量在多个线程间的可见性和有序性,但不保证原子性。其原理如下:
-可见性:当一个线程修改了`volatile`变量时,其他线程能够立即看到该变化,因为JVM会通过内存屏障来强制刷新缓存。
-有序性:`volatile`会禁止指令重排序,保证代码的执行顺序与程序分析时的顺序一致。
-非原子性:`volatile`不能保证复合操作(如`i++`)的原子性,需要使用`synchronized`或`Atomic`类解决。
解析:
`volatile`的核心是内存屏障(MemoryBarrier)和缓存失效(CacheInvalidation),适用于读多写少的场景。
2.题目:比较Java中的`HashMap`和`ConcurrentHashMap`的区别。
答案:
|特性|`HashMap`|`ConcurrentHashMap`|
|--|||
|线程安全|非线程安全,需外部同步|线程安全,支持高并发|
|实现方
原创力文档

文档评论(0)