Sobes.tech
Junior — Middle

Môžete vysvetliť princíp fungovania zberača odpadkov v programovacích jazykoch?

sobes.tech AI

Odpoveď od AI

Zberač odpadu (Garbage Collector, GC) je mechanizmus automatického riadenia pamäte, ktorý uvoľňuje pamäť obsadenú objektmi, ktoré už program nepoužíva.

Princíp fungovania:

  1. Sledovanie odkazov: GC určuje, ktoré objekty sú dostupné (majú odkazy z aktívneho kódu) a ktoré nie.
  2. Detekcia odpadu: Objekty bez odkazov sa považujú za odpad a sú kandidátmi na odstránenie.
  3. Uvoľnenie pamäte: GC uvoľňuje pamäť obsadenú týmito objektmi, aby mohla byť znovu použitá.

V Flutteri (Dart) je zberač odpadu založený na počítaní odkazov a periodickom čistení. Funguje na pozadí a snaží sa minimalizovať prestoje v behu aplikácie.

Príklad:

class MyClass {
  String data;
  MyClass(this.data);
}

void main() {
  MyClass obj = MyClass('Ahoj');
  obj = null; // Teraz je objekt MyClass nedostupný a môže byť zozbieraný GC
}

Keď obj prestane byť null, objekt MyClass sa stáva nedostupným a bude odstránený zberačom odpadu.