美文网首页
如何判断一个对象可以被回收?

如何判断一个对象可以被回收?

作者: 糯米团子123 | 来源:发表于2022-09-14 15:51 被阅读0次
    1. 引用计数法
      每个对象都有一个私有的引用计数属性,新增一个引用计数+1,释放一个引用时计数-1,引用计数为0则表示对象可被回收。

    缺点:

    • 无法解决循环引用问题:A->B,B->C,C->A 引用计数分别都是1,永远也得不到释放
    • 浪费CPU性能:每次引用都需要计算引用数。
    1. 可达性分析(java使用)
      从GC Roots向下搜索,如果一个对象和GC Roots之间没有可达路径,则该对象是不可达的。
      不可达对象不一定会成为可回收对象,被判定不可达的对象成为可回收对象至少要经历两次标记过程,如果两次标记过程中仍然没有逃脱成为可回收对象的可能,则基本上就成为可回收对象了。

    相关文章

      网友评论

          本文标题:如何判断一个对象可以被回收?

          本文链接:https://www.haomeiwen.com/subject/clflortx.html