Sobes.tech
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.