首页 > 代码库 > javaVM 判断对象实例何时回收 用的可达性分析算法,而非引用计数算法
javaVM 判断对象实例何时回收 用的可达性分析算法,而非引用计数算法
做java开发也好几年了,今天才晓得java内存的回收算法,真是惭愧惭愧
java虚拟机判断一个对象实例是否可以被回收,并非引用计数算法。
因为引用计数算法很难解决对象直接互相循环引用的问题。
所以java C#都是使用可达性分析来判断对象是否可以回收的。
这个算法的基本思路就是通过一系列的称为“GC Root”的对象作为起始点,从这些节点开始向下搜素,搜索所走过的路径称为应用链,当一个对象到GC Roots没有任何引用链相连时。则证明此对象时不可用的,可以被回收了。如下图对象object5,object6,object7虽然互相有关系,但是没有GC roots可以达到他们。所以他们时可以被回收的对象。
javaVM 判断对象实例何时回收 用的可达性分析算法,而非引用计数算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。