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).