判断java对象是否需要存活的两种算法:引用计数算法和可达性分析算法

判断java对象是否需要存活的两种算法:引用计数算法和可达性分析算法

1.引用计数算法

原理:

每当一个地方应用,计数器值就加一,当引用失效的时候,计数器就减一。

优缺点:

效率很高,但是无法解决对象之间互相引用的问题,两个对象互相引用,这样这两个对象就不会消失,这样就导致不能回收了。

2.可达性分析算法

原理:

以GC Roots作为起点,往下搜索,搜索的路径叫做引用链,如果一个对象没有任何引用链,用图论说就是对象不可达,则证明这个对象是不可用的。

可作为GC roots的对象:

虚拟机栈中引用的对象,方法区中类静态属性引用的对象,方法区中常量引用的对象。

发布了415 篇原创文章 · 获赞 434 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_41901915/article/details/103526337
今日推荐