您的位置:首页 > 其它

jvm如何判断实例对象是否需要回收

2016-06-15 14:36 555 查看
java虚拟机判断一个对象实例是否可以被回收,并非引用计数算法。

因为引用计数算法很难解决对象直接互相循环引用的问题。

所以java C#都是使用可达性分析来判断对象是否可以回收的。

这个算法的基本思路就是通过一系列的称为“GC Root”的对象作为起始点,从这些节点开始向下搜素,搜索所走过的路径称为应用链,当一个对象到GC Roots没有任何引用链相连时。则证明此对象时不可用的,可以被回收了。如下图对象object5,object6,object7虽然互相有关系,但是没有GC roots可以达到他们。所以他们时可以被回收的对象。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  引用链 GC