当前位置:  开发笔记 > 编程语言 > 正文

垃圾收集行为与孤立的循环引用?

如何解决《垃圾收集行为与孤立的循环引用?》经验,为你挑选了2个好方法。

如果我在堆上有两个对象相互引用但它们没有链接到任何引用变量那么那些对象是否有资格进行垃圾回收?



1> Jon Skeet..:

对,他们是.基本上,GC从"已知根"(静态变量,来自alll线程中所有堆栈帧的局部变量)走向查找无法进行垃圾回收的对象.如果无法从根目录获取对象,则可以进行收集.

编辑:汤姆指出了这一点,我认为值得提升到答案本身:

从技术上讲,静态变量不是根 - 它们由类加载器引用的类引用,类加载器由对象引用的类引用,这些类由根引用引用.

差异可能在大多数时候都是无关紧要的,但是知道很好:)



2> Hosam Aly..:

看看这个:Java垃圾收集器如何处理自我引用.

你可能想检查一下 java.lang.ref.WeakReference

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有