Junior — Middle
Cum este gestionată și structurată memoria în mediul C#?
sobes.tech AI
Răspuns de la AI
În C#, gestionarea memoriei se face automat prin colectorul de gunoi (Garbage Collector, GC). Memoria este împărțită în două zone principale:
- Stivă (Stack) — stochează variabile locale și parametri ai metodelor. Memoria este alocată și eliberată foarte rapid conform principiului LIFO.
- Heap (Heap) — stochează obiecte și date care trăiesc mai mult decât timpul de execuție al metodei. Memoria din heap este gestionată de colectorul de gunoi.
Colectorul de gunoi eliberează periodic memoria ocupată de obiectele pentru care nu mai există referințe. Acest lucru scutește programatorul de gestionarea manuală a memoriei și reduce riscul de scurgeri de memorie.
Exemplu de creare a unui obiect în heap:
class Program
{
static void Main()
{
Person p = new Person(); // obiect creat în heap
}
}
class Person
{
public string Name { get; set; }
}
Aici, obiectul Person este creat în heap, iar variabila p se află pe stivă, făcând referire la acel obiect.