垃圾回收-对象是否已死的研究

判断对象是否存活方法

引用计数算法
引用计数算法可以这样实现:给每个创建的对象添加一个引用计数器,每当此对象被某个地方引用时,计数值+1,引用失效时-1,所以当计数值为0时表示对象已经不能被使用。引用计数算法大多数情况下是个比较不错的算法,简单直接,也有一些著名的应用案例但是对于Java虚拟机来说,并不是一个好的选择,因为它很难解决对象直接相互循环引用的问题。
优点:
实现简单,执行效率高,很好的和程序交织。
缺点:
无法检测出循环引用。
在这里插入图片描述

public class App { 
		public static void main(String[] args) { 
			Test object1 = new Test(); 
			Test object2 = new Test();
			 object1.object = object2; 
			 object2.object = object1; 
			 object1 = null; object2 = null; 
			 }
			  }
			  class Test { 
			  public Test object = null;
			   }

这两个对象再无任何引用, 实际上这两个对象已 经不可能再被访问, 但是它们因为互相引用着对方, 导致它们的引用计数都不为零, 引用计数算法也 就无法回收它们 。
但是在java程序中这两个对象仍然会被回收,因为java中并没有使用引用计数算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值