垃圾什么时候回收?

本文探讨了Java中的垃圾回收触发机制,分为经典机制(YoungGC和FullGC)和G1垃圾回收器的机制。YoungGC在Eden区满时触发,对象通过多种方式进入老年代。FullGC在老年代空间不足或其他特定条件时启动。G1 GC则有YGC和MixGC,MixGC针对使用率高的region进行部分回收,以满足用户设定的回收时间。

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

[ JVM ] 垃圾什么时候回收?

垃圾回收是面试中很重要的话题,整个垃圾回收的知识点也非常多,一整篇看下来的话可能会对一些细节不是很深刻,所以我个人喜欢把大问题拆分成小问题来集中处理。

所以这一章我们集中来讨论Java中的垃圾什么时候回收,更为具体的话就是”垃圾回收的触发机制“,

由于不同的垃圾回收算法的触发机制不一,所以我们分为两章来讨论。

经典垃圾回收触发机制

在G1出现以前,Gc分为两种,即YoungGc和FullGC(或者称为MinorGc和MajorGC)

YoungGC

顾名思义,YoungGC是发生在年轻代的GC,在Eden区没有足够的空间创建新对象时,就会触发YGC,即复制算法进行回收。

延申知识:对象怎么进入老年代?

有如下途径:

  1. 最为常见的,经过了多次YGC后还存货的对象进入老年代
  2. 动态年龄判断,相同年龄的对象,若达到了Survivor区的一半以上,则大于该年龄的对象直接进入老年代
  3. YGC时空间不足时,超出的对象直接进入老年代
  4. 大对象直接进入老年代
FullGC

FullGC是老年代的GC,怎么才能触发老年代的GC呢?

我们直观的想一想:

  1. 当老年代的使用率达到一定的阈值后,肯定会触发FGC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值