如何判断java对象已经被回收?

引用计数(已淘汰)

为每个对象存储一个计数RC,当有其他引用指向它时,计数RC++;当其他引用与其断开时,RC–;如果有RC==0,则回收它(及其所以指向的object)。

可达性分析法(根搜索算法)

把内存中的每一个对象都看作一个节点,并且定义了一些对象作为根节点“GC Roots”。以“GC Root”的对象作为起始点,开始向下搜索,搜索所走过的路径称为引用链。如果一个对象与起始点没有任何引用链,则说明不可用,需要被回收。

在这里插入图片描述

图示object6、7、8与起始点没有任何引用链,则说明不可用,需要被回收。

发布了109 篇原创文章 · 获赞 1064 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/105020656
今日推荐