Sobes.tech
Junior — Middle

Ako zberač smeti zaznamená, že objekt už nie je používaný a môže byť odstránený?

sobes.tech AI

Odpoveď od AI

Súbor odpadu (Garbage Collector) v Androide (založený na JVM alebo ART) určuje, že objekt už nie je používaný, ak na neho nie sú aktívne odkazy z koreňových objektov, ako sú zásobníky vlákien, statické polia atď.

Proces je približne takýto:

  • Súbor začína od koreňových objektov a označuje všetky objekty, ku ktorým je možné sa dostať cez odkazy.
  • Všetky objekty, ktoré neboli označené, sa považujú za nedostupné a môžu byť odstránené.

Týmto spôsobom je objekt, na ktorý nie je dostupné z aktívneho kódu, považovaný za odpad a je podrobený zberu.

Toto sa nazýva algoritmus hĺbkového prehľadávania alebo označovania a čistenia (mark-and-sweep).