จากความเข้าใจของฉันการเก็บขยะใน 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
, b
และc
ควรเก็บขยะ แต่พวกมันทั้งหมดถูกอ้างอิงโดยวัตถุอื่น
คอลเล็กชันขยะ Java จัดการกับสิ่งนี้อย่างไร (หรือมันเป็นเพียงการระบายความจำ?)