加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如果只从垃圾引用对象垃圾?

发布时间:2020-12-14 05:45:18 所属栏目:Java 来源:网络整理
导读:假设有一个类A的对象a,它保存了对类B的另一个对象b的引用.这是b的唯一参考.所以现在,如果所有对a的引用被删除,那么a就可以使用GC了.这是否意味着b也准备好收集垃圾?因为,虽然b有一个引用(在一个内),它是不可达到的,因为a是不可达到的. 那么这种情况究竟如何
假设有一个类A的对象a,它保存了对类B的另一个对象b的引用.这是b的唯一参考.所以现在,如果所有对a的引用被删除,那么a就可以使用GC了.这是否意味着b也准备好收集垃圾?因为,虽然b有一个引用(在一个内),它是不可达到的,因为a是不可达到的.

那么这种情况究竟如何工作呢?我的意思是垃圾收集的顺序.

解决方法

一旦一个对象从根目录无法访问,就会被收集.有关GC根的说明,请参见 this question.

将会收集整个子图(如您所述),假定在该子图中没有可以达到节点.

Java(和.NET)使用处理这种问题的标记和扫描垃圾回收.

在循环依赖性保持不可达的情况下,基于参考计数的系统(例如C的std :: shared_ptr

相关文章

  • java - Immutable对象如何帮助减少垃圾回收引起的开销?
  • java - 垃圾第一垃圾收集器如何工作?
  • java - 垃圾收集与非垃圾回收编程语言
  • c# - 垃圾收集如何收集自引用对象?
  • java - 交叉引用和垃圾收集
  • Java ConcurrentMarkSweep垃圾收集器不会删除所有垃圾
  • c# - 垃圾收集如何在对象引用上工作?
  • 垃圾收集 - 如何实现垃圾收集器?
点击查看更多相关文章

转载注明原文:java – 如果只从垃圾引用对象垃圾? - 代码日志

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读