- 0
- 0
- 约5.25千字
- 约 7页
- 2026-11-10 发布于河北
- 举报
Java锁大厂高频面试题及详细真实答案(2026最新)
说明:本文题库全部为一线互联网大厂真实面试高频原题,内容以实战原理、落地场景、坑点解析为主,语言贴合面试官口述风格,无套话、无空洞理论,适合面试突击、复盘背诵。
1、synchronized和ReentrantLock有什么核心区别?(必问)
参考答案:
这是Java锁最核心的对比,日常面试基本必问,区别主要集中在底层实现、功能灵活性、性能、中断机制几个方面:
第一,底层实现不同。synchronized是JVM底层原生锁,基于对象头、监视器锁实现,是语法层面的锁;ReentrantLock是JDK代码层面的锁,基于AQS队列同步器实现,底层完全靠Java代码控制。
第二,锁的灵活性差异很大。synchronized功能简单,加锁解锁都是隐式的,进入代码块自动加锁,退出自动释放,无法手动控制;ReentrantLock是手动锁,需要自己调用lock()、unlock(),可以精准控制加锁和释放时机。
第三,中断和超时机制。synchronized阻塞之后只能一直等,不能响应中断,也无法设置超时时间,线程会一直阻塞;ReentrantLock支持lockInterruptibly()响应中断,也支持tryLock()超时获取锁,能有效避免死等、死锁问题。
第四,锁机制拓展。synchronized只支持
原创力文档

文档评论(0)