JVM25——G1垃圾回收器

JDK9的默认垃圾回收器,取代了之前的CMS垃圾回收器。

图片说明
(1)垃圾回收阶段

首先是进行Young Collection,当老年代到达阈值时,进行Young Collection+ConcurrentMark,最后进行Mixed Colletion。

图片说明

(2)Young Collection

新创建的对象会被放入伊甸园。

图片说明
当伊甸园满后(会分配总的大小)会进行Young Collection。通过复制算法将未被回收的对象移至幸存区。

图片说明
当再次触发垃圾回收时,会将一部分没有被回收的幸存区对象移到老年代(达到年龄阈值),另一部分没有被回收的幸存区对象移到其他幸存区(未达到年龄阈值)。

图片说明
(2)Young GC+CM(Concurrent marking)

  • 在Young GC(阶段1)的同时进行GC Root初始标记
  • 在老年代内存占用达到阈值时,会触发并发标记(无SWT)

图片说明
(3)混合收集

混合收集阶段会全面收集垃圾,但是值得注意的是可以通过参数设置最大暂停时间,为了达到最大暂停时间的设置目标,老年代的内存可能不会全部进行拷贝整理,而是优先整理垃圾最多的内存。这也称其为G1的原因(Garbage First).

图片说明

java全栈日日学 文章被收录于专栏

java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事

全部评论

相关推荐

2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生?
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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