GC的简单介绍

什么时候执行GC

  • 当新生代满了的时候触发minor GC
  • 当上升到老年代的对象大于剩余空间的时候执行Full GC。
  • 当GC与非GC的耗时超过了GCTimeRate的时候会促发OOM
  • 程序员不能控制具体的GC时间,只能调用System.gc()提示系统进行GC处理,但是JVM不一定执行。

回收什么对象

  • 在引用技术算法里面,当对象超出了作用域或者对象的引用技术为0时,该对象为垃圾对象。
  • 在GC Root算法里面,从GC root开始向下遍历,仍无法搜索到的对象,而且经过依次标记清理依然无法恢复的对象。

做些什么

  • 运行默认的finalize函数,对对象做最后的标记处理。
  • 删除垃圾对象,回收内存空间。
  • 在新生代里面,我们使用复制清理算法;在老年代里面,我们使用标记清理算法。

如何延迟对象回收或保留对象

  • 增大survivor space、老年代空间。
  • 为引用为0的对象增加老年代对他的引用。
  • 增大GcTimeRatio,低促发GC的比率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值