Sobes.tech
Junior — Middle

Jak zbieracz śmieci wykrywa, że obiekt nie jest już używany i może zostać usunięty?

sobes.tech AI

Odpowiedź od AI

Zbieracz śmieci (Garbage Collector) w Androidzie (oparty na JVM lub ART) określa, że obiekt nie jest już używany, jeśli nie ma do niego aktywnych odwołań z obiektów korzeniowych, takich jak stosy wątków, pola statyczne itp.

Proces wygląda mniej więcej tak:

  • Zbieracz zaczyna od obiektów korzeniowych i oznacza wszystkie obiekty, do których można dotrzeć przez odwołania.
  • Wszystkie obiekty, które nie zostały oznaczone, są uważane za niedostępne i mogą zostać usunięte.

W ten sposób, jeśli obiekt nie jest dostępny z aktywnego kodu, jest uważany za śmieci i podlega zbiórce.

Nazywa się to algorytmem głębokościowym lub oznaczania i sprzątania (mark-and-sweep).