Da quanto ho capito, la garbage collection in Java pulisce alcuni oggetti se nient'altro 'punta' a quell'oggetto.
La mia domanda è: cosa succede se abbiamo qualcosa del genere:
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
e c
dovrebbero essere raccolti in modo inutile, ma a tutti fanno riferimento altri oggetti.
In che modo la raccolta di rifiuti Java si occupa di questo? (o è semplicemente una perdita di memoria?)