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

  1. Vytvorenie (Allocation) — objekt je vytvorený na spravovanej halde (heap) pomocou operátora new.
  2. Použitie (Usage) — objekt sa používa v programe a odkazy naň sa ukladajú do premenných.
  3. Zber odpadu (Garbage Collection) — keď na objekt už nie sú žiadne odkazy, zberač odpadu ho označí ako kandidáta na odstránenie.
  4. 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äť