jvm对象回收判定

本文介绍了Java中对象回收的两种主要方法:引用计数法和可达性分析。引用计数法简单但存在循环引用问题,而可达性分析通过GCroots避免了这一问题,判断对象是否可回收。对象从不可达到可回收需经过两次标记过程。
摘要由CSDN通过智能技术生成

1. 引用计数法

在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单
的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关
联的引用, 即他们的引用计数都不为 0, 则说明对象不太可能再被用到,那么这个对象就是可回收
对象。
引用计数法存在着循环引用问题,即两个对象相互引用,会造成对象永远无法被回收。

2. 可达性分析

为了解决引用计数法的循环引用问题, Java 使用了可达性分析的方法。通过一系列的“GC roots”
对象作为起点搜索。如果在“GC roots”和一个对象之间没有可达路径,则称该对象是不可达的。13/04/2018 Page 27 of 283
要注意的是,不可达对象不等价于可回收对象, 不可达对象变为可回收对象至少要经过两次标记
过程。两次标记后仍然是可回收对象,则将面临回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值