JVM Minor GC、Full GC和Major GC

本文深入探讨了Java垃圾回收的三种类型:MinorGC、MajorGC(CMS中称为OldGC)和FullGC。MinorGC在年轻代的Eden区满时触发,而Survivor区满不会直接引发GC。MajorGC主要负责清理老年代。FullGC可能因多种情况触发,包括System.gc()请求、老年代空间不足、方法区满等。理解这些机制对于优化Java应用的性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Minor GC触发机制:
从年轻代回收内存,Eden区满了会触发Minor GC,Survivor区满了不会触发。young gc

Major GC触发机制:
清理老年代。old gc cms才有

Full GC触发机制:
有的时候Major GC会跟Full GC混在一起
(1)调用System.gc时,系统建议执行Full GC,但是不必然执行
(2)老年代空间不足
(3)方法区空间不足
(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存
(5)由Eden区、survivor space1(From Space)区向survivor space2(To Space)区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小
(6)当永久代满时也会引发Full GC,会导致Class、Method元信息的卸载
整个堆的gc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值