根据我的理解,如果没有其他东西"指向"该对象,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
Run Code Online (Sandbox Code Playgroud)
a,b和c应该是垃圾收集,但它们都被其他对象引用.
Java垃圾收集如何处理这个问题?(或者它只是一个内存消耗?)
垃圾收集的根源是什么?
我已经将root的定义读作"你编程可以访问的任何引用",而live的定义是正在使用的对象,它可以是局部变量,静态变量.
我对区分root和live对象之间的区别感到困惑.
什么是root的路径?root和live对象如何工作?
有人可以详细说明吗?