Junior — Middle
Wie erkennt der Garbage Collector, dass ein Objekt nicht mehr verwendet wird und entfernt werden kann?
sobes.tech KI
Antwort von AI
Der Garbage Collector in Android (basierend auf JVM oder ART) bestimmt, dass ein Objekt nicht mehr verwendet wird, wenn keine aktiven Referenzen von Root-Objekten wie Thread-Stacks, statischen Feldern usw. auf es zeigen.
Der Prozess ist ungefähr folgender:
- Der Collector beginnt mit den Root-Objekten und markiert alle Objekte, auf die über Referenzen zugegriffen werden kann.
- Alle nicht markierten Objekte gelten als unerreichbar und können gelöscht werden.
Wenn ein Objekt also vom aktiven Code aus nicht erreichbar ist, gilt es als Müll und wird gesammelt.
Dies nennt man den Tiefensuch- oder Mark-and-Sweep-Algorithmus.