Java垃圾回收如何与循环引用一起使用?

根据我的理解,如果没有其他“指向”该对象的内容,则Java中的垃圾回收会清除某些对象。

我的问题是,如果我们有这样的事情怎么办:

class Node {

public object value;

public Node next;

public Node(object o, Node n) { value = 0; next = n;}

}

//...some code

{

Node a = new Node("a", null),

b = new Node("b", a),

c = new Node("c", b);

a.next = c;

} //end of scope

//...other code

a,bc应该被垃圾回收,但是它们都被其他对象引用。

Java垃圾回收如何处理呢?(或者仅仅是内存消耗?)

回答:

如果无法通过从垃圾回收根开始的链访问对象,Java的GC会将其视为“垃圾”,因此将收集这些对象。即使对象可能指向彼此以形成一个循环,但如果将它们与根切断,它们仍然是垃圾。

以上是 Java垃圾回收如何与循环引用一起使用? 的全部内容, 来源链接: utcz.com/qa/421808.html

回到顶部