Was löst der Java Garbage Collector

Ich bin ein wenig verwirrt darüber, wie die Garbage Collection in Java funktioniert.

Ich erhalte die Meldung, dass ein Objekt für die Garbage Collection in Frage kommt, wenn keine Live-Verweise mehr darauf vorhanden sind. Was ist jedoch, wenn es Verweise auf Live-Objekte enthält?

Nehmen wir an, ich habe eine Sammlung von Knoten, die erneut auf weitere Knoten verweist

List
1 -> Node a -> Node b
2 -> Node c -> Node d
3 -> Node d -> Node c
4 -> Node e
5

Wenn ich nun die Liste lösche, sollten die Knoten c d und e müllsammelbar sein. Knoten e hat keine Referenzen mehr und Knoten c und d haben zyklische Referenzen.

Aber was ist mit Knoten a? Wird es Müll gesammelt?

Wird es anders sein, ob Knoten b externe Live-Referenzen hat oder nicht? Sagen wir, wenn der Knoten b von einer anderen Stelle aus darauf verweist, bleibt der Knoten dann im Speicher?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage