程序员面试常见技术问题及答案.docxVIP

  • 0
  • 0
  • 约6.1千字
  • 约 17页
  • 2026-10-12 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年程序员面试常见技术问题及答案

一、Java基础(共5题,每题10分,总分50分)

1.题目:请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`的区别。

答案:

`volatile`关键字用于确保变量的可见性和有序性,但不保证原子性。

-可见性:当一个线程修改了`volatile`变量时,其他线程能够立即看到这个修改。

-有序性:禁止指令重排序,确保代码的执行顺序与程序代码顺序一致。

与`synchronized`的区别:

-性能:`volatile`开销小,仅保证可见性和有序性;`synchronized`是重量级锁,涉及锁状态变更,开销较大。

-原子性:`volatile`不保证原子性(如`i++`);`synchronized`可以保证原子性。

-作用范围:`volatile`仅作用于变量;`synchronized`作用于方法或代码块。

2.题目:Java中的`HashMap`和`ConcurrentHashMap`有什么区别?在什么场景下使用哪个?

答案:

-`HashMap`:非线程安全,`put`和`remove`操作无并发控制,适合单线程场景。

-`ConcurrentHashMap`:线程安全,通过分段锁(`Segment`)实现并发控制,支持高并发。

文档评论(0)

1亿VIP精品文档

相关文档