Sobes.tech
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.