2026年程序员面试题及答案.docxVIP

  • 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)

1亿VIP精品文档

相关文档