网易三面:Java中默认使用的垃圾回收器及特点分版本说说?

文章内容收录到个人网站,方便阅读http://hardyfish.top/

JDK 7(以及之前)

  • 默认垃圾回收器: 新生代:Parallel Scavenge(吞吐量优先收集器)老年代:Parallel Old
  • 特点: 并行 GC:多线程回收新生代和老年代,适合批处理、后台任务等吞吐量优先场景。STW(Stop-The-World)时间相对较长。调优主要依赖 -XX:MaxGCPauseMillis 和 -XX:GCTimeRatio。

JDK 8

  • 默认垃圾回收器Parallel GC(新生代 Parallel Scavenge + 老年代 Parallel Old)。
  • 特点: 吞吐量优先。新生代复制算法、老年代标记-整理算法。适合大内存、批量任务,不适合对延迟非常敏感的服务。
  • 备注: JDK 8 中 G1 GC 是可选(-XX:+UseG1GC),但不是默认。元空间(Metaspace)替代了永久代(PermGen)。

JDK 9 ~ JDK 10

  • 默认垃圾回收器G1 GC(Garbage First)
  • 特点: 面向低延迟:将堆划分为多个 Region,按优先级回收。可以预测停顿时间(-XX:MaxGCPauseMillis)。混合回收(Mixed GC):一次回收新生代 + 部分老年代。减少了全堆 STW 的次数,但调优复杂度比 Parallel GC 高。

JDK 11 ~ JDK 16

  • 默认垃圾回收器:依旧是 G1 GC
  • 特点更新: JDK 11:G1 增加并行 Full GC,减少单线程 Full GC 带来的长时间停顿。JDK 12:G1 支持 abortable mixed collections(可中断混合回收)。JDK 14:移除 CMS(Concurrent Mark-Sweep)GC。调优建议:尽量通过 -XX:MaxGCPauseMillis 控制延迟,不盲目调 Region 数量。

JDK 17 ~ 现在

  • 默认垃圾回收器G1 GC(依旧默认)
  • 特点更新: 继续优化停顿预测。并行化更多阶段。提供更多可选低延迟 GC: ZGC(-XX:+UseZGC):毫秒级停顿,支持超大堆(TB 级)。Shenandoah(-XX:+UseShenandoahGC):低延迟,停顿时间与堆大小无关。
  • 趋势:低延迟场景逐渐用 ZGC / Shenandoah,G1 作为通用型默认。

汇总表

7 及以前

Parallel Scavenge + Parallel Old

吞吐量优先,STW 时间长

8

Parallel GC

吞吐量优先,可选 G1

9 ~ 10

G1 GC

低延迟,分 Region 回收

11 ~ 16

G1 GC

G1 优化更多并行、可预测停顿

17+

G1 GC

默认 G1,可选 ZGC/Shenandoah 实现极低延迟

#面试题##面试#
大厂面试每日一题 文章被收录于专栏

大厂每日一道面试题!

全部评论
怎么还问这种 真记不住
点赞 回复 分享
发布于 2025-10-09 19:25 上海

相关推荐

01-14 10:23
已编辑
湖南师范大学 计调
太久没更新,前几天看到一条评论,说“牛客就是当年那群做题区毕业了开始找工作还收不住那股味”的群体。字里行间透着居高临下的评判,不是,他该不会以为自己很幽默?很犀利吧?作为在牛客混了不算短日子的用户,我感到的不只是被冒犯,更是一种深刻的悲哀——这种以“松弛感”为名,对另一种生存策略的轻蔑,颇有一种自己考不上大学早早出来混社会,嘲笑考上大学的人是书呆子,然后大言不惭地说:死读书有什么用,人脉和资源才是硬道理。我不知道说这个话的人,手头究竟握着多少真正管用的人脉与资源,也不知道他这么傲慢地说出“那股味”的时候,是站在哪一个巨人的肩膀上,才能如此“松弛从容”地俯视众生,还能品评出别人身上“没收住”的余...
淬月星辉:这种评论把正常的努力扭曲成卷😂,说白了就是自己不努力,看着身边努力的人一个个都事业有成了,自己的心里开始不平衡了,就发这种酸言酸语。牛客可以说是我用过那么多平台里社区氛围最好的论坛了,用了大半年了,基本上没见过有人吵架的,都是在互帮互助提建议,帮忙看简历的,帮忙选offer的,帮忙指点学习路线的,分享工作经验和趣事的,我觉得这才是互联网该有的样子。
点赞 评论 收藏
分享
评论
2
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务