Java中如何判断对象存活
作者:互联网
1.引用计数法
给对象添加一个计数器,如果被引用则计数器加一;如果引用释放,计数器减一。当计数器为零时,代表该对象没有被引用那就需要回收了。如果两个对象互相引用怎么办?比如A引用了B,B又引用了A,A.reference=B;B.reference=A,那就无法释放。因此该算法未被采用。
2.可达性分析
从GCRoots对象出发,向下查找对象,查找的路径叫引用链,如果查找的对象到GCRoots没有任何引用链,那该对象是不可用的就可以被回收。
如图,Object4到GCRoots不存在引用链,故不可用,需要回收。
标签:Java,reference,对象,GCRoots,存活,计数器,查找,引用 来源: https://www.cnblogs.com/blog-java-jyf/p/12010258.html