开发者社区> 问答> 正文

怎么判断对象是否可以被回收?

怎么判断对象是否可以被回收?

展开
收起
请回答1024 2020-03-11 11:51:29 624 0
1 条回答
写回答
取消 提交回答
  • 垃圾收集器在做垃圾回收的时候,首先需要判定的就是哪些内存是需要被回收的,哪些对象是「存活」的,是不可以被回收的;哪些对象已经「死掉」了,需要被回收。

    一般有两种方法来判断:

    • 引用计数器法:为每个对象创建一个引用计数,有对象引用时计数器 +1,引用被释放时计数 -1,当计数器为 0 时就可以被回收。它有一个缺点不能解决循环引用的问题;
    • 可达性分析算法:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GC Roots 没有任何引用链相连时,则证明此对象是可以被回收的。

    原文链接:https://thinkwon.blog.csdn.net/article/details/104390752

    2020-03-11 13:17:44
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
对象的生命期管理 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载