- 1
- 0
- 约5.34千字
- 约 18页
- 2026-03-24 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年程序员面试题及答案
一、Java基础(5题,每题2分,共10分)
1.题目:
Java中`volatile`关键字的作用是什么?它与`synchronized`有什么区别?
答案:
`volatile`关键字用于标记变量,确保对变量的读写操作直接作用于主内存,避免指令重排序。其主要作用包括:
1.可见性:保证一个线程对变量的修改对其他线程可见。
2.禁止指令重排序:防止编译器或处理器对指令进行优化,影响多线程同步逻辑。
与`synchronized`的区别:
-性能:`volatile`仅保证可见性和禁止重排序,开销较小;`synchronized`是重量级锁,涉及锁状态切换,性能开销大。
-内存语义:`volatile`仅影响变量,不保证方法内的其他操作原子性;`synchronized`保证方法内所有操作的原子性。
解析:
`volatile`适用于读多写少的场景(如状态标记),而`synchronized`适用于写操作频繁、需要原子性保障的场景(如计数器)。
2.题目:
Java中的`HashMap`和`ConcurrentHashMap`有什么区别?如何实现线程安全?
答案:
区别:
1.线程安全:`HashMap`非线程安全,`ConcurrentHashMap`是线程安全的。
2.锁机制:`Has
原创力文档

文档评论(0)