Junior — Middle
Come viene gestita e strutturata la memoria nell'ambiente C#?
sobes.tech AI
Risposta dell'AI
In C#, la gestione della memoria avviene automaticamente tramite il Garbage Collector (GC). La memoria è divisa in due aree principali:
- Stack (Pila) — memorizza variabili locali e parametri di metodi. La memoria viene allocata e liberata molto rapidamente secondo il principio LIFO.
- Heap (Heap) — memorizza oggetti e dati che vivono oltre il tempo di esecuzione del metodo. La memoria nell'heap è gestita dal garbage collector.
Il garbage collector libera periodicamente la memoria occupata dagli oggetti a cui non ci sono più riferimenti. Questo solleva lo sviluppatore dalla gestione manuale della memoria e riduce il rischio di perdite.
Esempio di creazione di un oggetto nell'heap:
class Program
{
static void Main()
{
Person p = new Person(); // oggetto creato nell'heap
}
}
class Person
{
public string Name { get; set; }
}
Qui, l'oggetto Person viene creato nell'heap, mentre la variabile p si trova nello stack, facendo riferimento a quell'oggetto.