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