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:
- Sledovanie odkazov: GC určuje, ktoré objekty sú dostupné (majú odkazy z aktívneho kódu) a ktoré nie.
- Detekcia odpadu: Objekty bez odkazov sa považujú za odpad a sú kandidátmi na odstránenie.
- 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.