如何判断对象已死?

如何判断对象是否可以被回收掉?对象已经没有价值了?对象已死?

1. 引用计数算法

给对象添加一个引用计数器,每当该对象被其它对象引用的时候,计数器就加1,当某一个引用失效的时候就减1,如果对象的引用计数器持续一段时间内都为0,该对象就可以被回收。

应用:COM、FlashPlayer、Python

2. 根搜索算法:

选一些特定的对象为“GC Roots”对象作为起点,从这个起点开始向下搜索,搜索走过的路径为一个引用链,当一个对象到 GC Roots 没有任何引用链的时候,该对象就可以被回收。

应用:Java,C#

引用计数法的缺点就是无法处理相互引用的对象。

posted @ 2012-07-25 16:30  zhenxu.liu  阅读(225)  评论(0编辑  收藏  举报