Junior — Middle
Hogyan észleli a szemétgyűjtő, hogy egy objektum már nem használható, és törölhető?
sobes.tech MI
Válasz az MI-től
Az Androidban (JVM vagy ART alapú) a szemétgyűjtő (Garbage Collector) meghatározza, hogy egy objektum már nem használatos, ha nincs rá aktív hivatkozás a gyökérobjektumokból, például szálak vereméből, statikus mezőkből stb.
A folyamat nagyjából így néz ki:
- A gyűjtő a gyökérobjektumokkal kezd, és megjelöl minden olyan objektumot, amelyhez hivatkozásokon keresztül lehet hozzáférni.
- Minden meg nem jelölt objektum elérhetetlennek számít, és törölhető.
Így, ha egy objektum nem érhető el az aktív kódból, szemétnek számít, és gyűjtés alá esik.
Ezt az algoritmust mélységi keresésnek vagy mark-and-sweep (jelölés és söprés) algoritmusnak nevezik.