- 1
- 0
- 约1.56万字
- 约 16页
- 2026-06-08 发布于河北
- 举报
Java架构师面试题目及详细答案
一、基础核心(架构师必备,杜绝表面化)
1.题目:Java中的锁机制,偏向锁、轻量级锁、重量级锁的区别,实际项目中如何选择?
详细答案:
首先明确核心:三者都是JVM对synchronized锁的优化,本质是基于“竞争激烈程度”的梯度升级,核心目的是减少锁竞争带来的性能损耗,不是孤立存在的,而是动态升级的(偏向锁→轻量级锁→重量级锁,不可逆)。
1.偏向锁:核心是“无竞争时,避免锁竞争的开销”。适用于单线程重复获取同一把锁的场景(比如单线程操作HashMap、局部循环中的锁)。实现原理是给对象头markword设置“偏向线程ID”,后续该线程获取锁时,直接判断ID匹配,无需CAS操作,几乎无性能损耗。但如果有其他线程竞争,会立即升级为轻量级锁,所以多线程竞争频繁的场景,偏向锁反而会因为“升级耗时”拖慢性能,此时建议关闭偏向锁(-XX:-UseBiasedLocking)。
2.轻量级锁:核心是“少量线程竞争,用CAS替代内核态锁”。适用于线程交替获取锁、竞争不激烈的场景(比如并发量100以内的接口加锁)。实现原理是线程获取锁时,将对象头markword复制到线程栈的锁记录中,通过CAS修改markword为“轻量级锁指针”,如果CAS成功则获取锁;失败则说明竞争加剧,升级为重量级锁。轻量级锁避免了重量级锁的内核态切换开销,但CAS操作
您可能关注的文档
最近下载
- 中国太平洋保险无锡分公司招聘笔试题库2026.pdf VIP
- 五年级下册语文1-8单元作文范文(深度完整版).docx VIP
- 2025江西鹰潭余江区招聘社区工作者21人备考题库附答案详解(完整版).docx VIP
- 2025江西鹰潭余江区招聘社区工作者21人备考题库附答案详解.docx VIP
- 基因检测技术进展报告.pptx
- 培训防汛应急预案.docx VIP
- 2023年河北省高考数学真题试卷及答案.docx VIP
- 加强医院检验科标准化建设:XX医院“十五五”检验科发展规划.docx VIP
- 《安全生产责任保险 “事故预防1+1技术服务”规范》.pdf VIP
- 工业机器人安全培训课件.pptx VIP
原创力文档

文档评论(0)