Sobes.tech
Junior — Middle

Hoe detecteert de garbage collector dat een object niet meer wordt gebruikt en verwijderd kan worden?

sobes.tech AI

Antwoord van AI

De Garbage Collector in Android (gebaseerd op JVM of ART) bepaalt dat een object niet meer wordt gebruikt als er geen actieve verwijzingen naar zijn vanuit root-objecten, zoals thread-stacks, statische velden, enz.

Het proces is ongeveer als volgt:

  • De collector begint bij de root-objecten en markeert alle objecten die via verwijzingen bereikbaar zijn.
  • Alle niet-gemarkeerde objecten worden als onbereikbaar beschouwd en kunnen worden verwijderd.

Dus, als een object niet bereikbaar is vanuit de actieve code, wordt het als afval beschouwd en wordt het verzameld.

Dit wordt het diepte-eerst doorzoekings- of markeer-en-schoonmaakalgoritme genoemd.