GC的触发,算法

本文介绍了Java垃圾收集(GC)的触发条件,详细解析了MinorGC和Full GC的发生情况,并探讨了对象的晋升过程。同时,文章讨论了三种经典的GC算法:Mark-Sweep、Copying和Mark-Compact,分析了它们的工作原理和优缺点。
摘要由CSDN通过智能技术生成

GC的触发:

运行时数据区中最大的区域的堆内存,我们说堆是GC主要处理的区域,所以又叫GC堆。如果要知道GC的触发过程那么对内存还需要继续划分
在这里插入图片描述
对象的创建和上面的区域发生密切的关系,其中也会在上面的区域触发GC
分析GC触发的过程:
1.当创建一个新对象的时候需要为新对象申请空间,在伊甸园区申请,但是需要判断一点园区的空间是否充足,充足则申请成功,如果不充足则触发MinorGC回收不活跃的对象(不经常使用的对象)【采用的算法是复制算法】,回收之后再判断一点园区空间是否充足,充足则申请成功。【GC时把存活的对象从一块空间(From space)复制到另一块空间(To space),再把原先的那块内存(Form space)清理干净,最后调换From space 和 To space 的逻辑角色(这样下一次 GC 的时候还可以按这样的方式进行),当启动MinorGC 的时候会停止应用线程,启动GC回收线程,这个线程是一个守护线程】

2.如果依然不充足,则判断存活区空间是否充足,充足则将伊甸园区的部分活跃对象移到存活区,伊甸园区的空间申请成功

3.如果村获取的空间不足则判断老年代,如果充足则将存活区的部分活跃对象保存到老年代,之后将伊甸园区的活跃对象保存到存活区,空间申请成功

4、如果老年代的空间不充足则触发Full G

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值