Sobes.tech
Junior — Middle

Jak detekuje garbage collector, že objekt již není používán a může být odstraněn?

sobes.tech AI

Odpověď od AI

Sběrač odpadu (Garbage Collector) v Androidu (založený na JVM nebo ART) určuje, že objekt již není používán, pokud na něj neexistují aktivní odkazy z kořenových objektů, jako jsou zásobníky vláken, statická pole atd.

Proces je přibližně takový:

  • Sběrač začíná od kořenových objektů a označuje všechny objekty, ke kterým je možné se dostat přes odkazy.
  • Všechny objekty, které nebyly označeny, jsou považovány za nedosažitelné a mohou být odstraněny.

Tímto způsobem je objekt, na který není dosažitelné z aktivního kódu, považován za odpad a je určen ke sběru.

Toto se nazývá algoritmus hloubkového průchodu nebo označování a pročištění (mark-and-sweep).