0
点赞
收藏
分享

微信扫一扫

如何判断对象是否存活

君之言之 2022-02-14 阅读 63
java

原文地址:JavaGuide

1.引用计数法

什么是引用计数法:每个对象在创建的时候,就给这个对象绑定一个计数器。每当有一个引用指向该对象时,计数器加一;每当有一个指向它的引用被删除时,计数器减一。这样,当没有引用指向该对象时,计数器为0就代表该对象死亡

优点:

引用计数算法的实现简单,判定效率也很高

缺点:

很难解决对象之间相互循环引用的问题

2 .可达性分析法

该种方法是从GC Roots开始向下搜索,搜索所走过的路径为引用链。当一个对象到GC Roots没用任何引用链时,则证明此对象是不可用的,表示可以回收。

上图上图中Object1、Object2、Object3、Object4、Object5到GC Roots是可达的,表示它们是有引用的对象,是存活的对象不可以进行回收;Object6、Object7、Object8虽然是互相关联的,但是它们到GC Roots是不可达的,所以他们是可以进行回收的对象。

优点:

解决相互循环引用问题

举报

相关推荐

0 条评论