Junior — Middle
Aké fázy vývoja je možné rozlíšiť v životnom cykle objektov v riadenej pamäti?
sobes.tech AI
Odpoveď od AI
Životný cyklus objektov v spravovanej pamäti v C# možno rozdeliť na niekoľko etáp:
- Vytvorenie (Allocation) — objekt je vytvorený na spravovanej halde (heap) pomocou operátora
new. - Použitie (Usage) — objekt sa používa v programe a odkazy naň sa ukladajú do premenných.
- Zber odpadu (Garbage Collection) — keď na objekt už nie sú žiadne odkazy, zberač odpadu ho označí ako kandidáta na odstránenie.
- Uvoľnenie pamäti (Finalization a Deallocation) — ak má objekt finalizátor (
Finalize), je volaný pred uvoľnením pamäti; potom je pamäť uvoľnená.
Dôležitý bod — zberač odpadu v .NET pracuje podľa generácií (Gen 0, Gen 1, Gen 2), čo optimalizuje výkon a čas čistenia.
Príklad:
class MyClass {
~MyClass() {
// Finalizátor, volá sa pred odstránením objektu
}
}
var obj = new MyClass(); // Vytvorenie
// Použitie obj
obj = null; // Objekt už nie je dostupný
// Zberač odpadu neskôr uvoľní pamäť