解释一下什么是Young GC和Full GC?

本文详细介绍了Java垃圾回收机制中的Young GC(Minor GC)和Full GC。Young GC主要针对新生代内存区域,当Eden区满时触发。而Full GC则涉及新生代、老年代及永久代的全部内存回收,可能导致较长的停顿时间。此外,还提到了Major GC和Mixed GC,Major GC在老年代空间不足时触发,Mixed GC是G1垃圾收集器中的部分老年代回收策略。
摘要由CSDN通过智能技术生成

1、Minor GC / Young GC

Minor GC / Young GC,这个非常好理解,新生代”也可以称之为“年轻代”,这两个名词是等价的。那么在年轻代中的Eden内存区域被占满之后,实际上就需要触发年轻代的gc,或者是新生代的gc
此时这个新生代gc,其实就是所谓的“Minor GC”,也可以称之为“Young GC”,这两个名词,相信大家就理解了,说白了,就专门针对新生代的gc。

2、Full GC?Old GC?傻傻分不清楚

在 JVM 中,Old GC(Old Generation Garbage Collection)是指对老年代(Old Generation)内存区域进行的垃圾收集。老年代主要存放生命周期较长、从新生代晋升的对象。Old GC 的主要目标是回收老年代中不再使用的对象,以释放内存空间。

3、Full GC

对于Full GC,其实这里有一个更加合适的说法,就是说Full GC指的是针对新生代、老年代、永久代的全体内存空间的垃圾回收,所以称之为Full GC。

4、Major GC

触发条件:当老年代内存空间不足时会触发 Major GC。这通常是因为对象从新生代晋升到老年代后,老年代的可用空间不足以容纳更多对象。
目标:清理老年代的垃圾对象,回收老年代的内存空间。
影响:Major GC 通常会对应用程序性能产生较大影响,因为它会导致所有线程暂停(Stop-the-World,STW),暂停时间通常较长,具体取决于堆的大小和垃圾收集算法。

5、Mixed GC

触发条件:Mixed GC 发生在 G1 垃圾收集器的某些条件满足时,特别是当老年代的占用达到某个阈值(默认为堆内存的 45%)时。
目标:除了收集新生代的垃圾对象外,还会选择性地收集老年代的一部分垃圾对象。G1 会优先选择那些含有最多垃圾对象的老年代区域(Regions),以最大化每次垃圾收集的效率。
过程:
初始标记(Initial Mark):标记从根对象直接可达的对象,此过程会触发一个短暂的全局暂停(STW)。
并发标记(Concurrent Mark):在应用程序运行时并发执行,标记老年代中的存活对象。
最终标记(Final Mark):完成标记过程,这也会触发一个短暂的全局暂停。
筛选回收(Cleanup):根据标记结果确定哪些老年代区域需要回收。
混合垃圾收集(Mixed GC):同时回收新生代和部分老年代区域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值