我对Java中垃圾收集的工作方式有点困惑。什么触发java垃圾收集器
我得到一个对象有资格进行垃圾回收时没有更多的实时引用,但如果它有活动对象的引用呢?
可以说我有节点的集合,再次引用多个节点
List
1 -> Node a -> Node b
2 -> Node c -> Node d
3 -> Node d -> Node c
4 -> Node e
5
现在,如果我删除列表,节点C d和e应该被垃圾收集。节点e不再有对它的引用,并且节点c和d具有循环引用。
但是Node a呢?它会被垃圾收集?
无论节点b是否有外部活动引用,它会不同吗?说如果节点b从一个不同的地方引用它,这会使节点停留在内存中吗?
可以收集任何没有来自线程根的强*参考的对象。这意味着两个对象可以相互引用,但会被收集。你可以对对象有一个弱引用,但它仍然可以被清理。 –