JAVA垃圾回收机制

原创
06/17 17:35
阅读数 145

对象被判定为垃圾的标准

当没有被任何对象所引用的情况下,该对象就被系统判定为没用的。其占据的内存就要被释放,此对象就要被销毁。

判定对象是否为垃圾的算法

1.引用计数算法

通过判断对象的引用数量来决定对象是否可以被回收

每个对象实例都有一个引用计数器,被引用则+1,完成引用-1

任何引用计数对象为0的实例,都可以当做垃圾去收集

优点:执行效率高,程序执行受影响小,几乎不打断程序的执行

缺点:无法检测出循环引用的情况,循环引用的对象计数器永远不会为0,导致内存泄漏。

两个实例之间相互引用,形成了循环引用。

主流得Java垃圾回收器并未采用这种垃圾回收算法

2.可达性分析算法

通过判断对象的引用链是否可达来决定对象是否可以被回收

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部