- 1
- 0
- 约6.2千字
- 约 7页
- 2026-10-13 发布于河北
- 举报
Java高阶最难面试题及详细答案(大厂压轴版)
本套面试题筛选互联网大厂Java后端高频压轴难题,聚焦JVM底层、并发源码、集合深度原理、IO模型、分布式核心、内存模型等高频难点,摒弃基础入门题型。答案贴合真实面试答题逻辑,通俗落地、侧重底层原理和实战踩坑点,无套话空话,适配中高级Java开发面试场景。
一、JVM底层压轴难题(高频扣分点)
1.详细说说CMS和G1的底层区别,为什么G1能替代CMS?CMS的致命缺陷是什么?
详细答案:
首先两者核心定位不同,CMS是老年代专属垃圾收集器,基于标记-清除算法;G1是全代区间收集器,可同时管理新生代和老年代,基于分块标记+复制整理算法,核心设计目标是可控的低延迟。
底层核心区别有四点:
第一,内存布局不同。CMS沿用传统连续内存分区,新生代、老年代固定划分;G1将整个堆内存划分为多个大小统一的Region分区,每个Region可灵活充当新生代、老年代,解决了固定分区导致的内存利用率不均问题。
第二,回收逻辑不同。CMS仅针对老年代回收,新生代依赖ParNew收集器配合;G1采用分区优先回收策略,优先回收垃圾最多的Region,垃圾回收收益更高,碎片化控制更精准。
第三,停顿控制不同。CMS的STW停顿时间不可控,老年代越大,FullGC停顿时间越长;G1支持用户设置最大停顿时间,JVM会动态调整回收分区数量,严格控制单次GC停
原创力文档

文档评论(0)