GC的对象标记分析法

1、引用计数法
引用计数法原理很简单,给每个新生对象配备一个计数器。当此对象被引用,计数器+1;当此对象的引用被断开,计数器-1。GC会定时询问这些计数器,当该计数器的值降到0就认为对象死亡,对象会被标记,等待清理。更高级的引用计数实现会引入“弱引用”的概念来打破某些已知的循环引用,但那是另一个话题了。此方法不能够处理弱引用的对象,故而至今已经被舍弃。
2、可达性分析法
可达性分析法较为复杂,需要管理全局的对象图信息。跟树型结构(root)的概念一致。此分析法只需管理根节点,从根节点出发扫描出去,基于引用的可到达性来判断对象的生死。这使得对象的生死状态只能批量的被识别出来,然后批量释放死对象。很好的解决了弱引用不能被成功标志的问题。被选为根节点的对象的引用,存储在java栈中。而被选举的这个过程是较为复杂的,在此不做论述,可自行查阅。目前虚拟机基本都是采用可达性算法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值