Cos'è heap e stack?
sobes.tech AI
Risposta dell'AI
Heap e Stack sono due aree di memoria utilizzate dai programmi per memorizzare i dati.
-
Stack (pila) è un'area di memoria in cui vengono memorizzate variabili locali, parametri di funzioni e indirizzi di ritorno. Funziona secondo il principio LIFO (last in, first out). Quando viene chiamata una funzione, viene allocato un blocco nello stack, e dopo il suo completamento, viene liberato. Lo stack ha una dimensione limitata ed è gestito automaticamente.
-
Heap (montone) è un'area di memoria per l'allocazione dinamica di oggetti e dati, la cui dimensione può cambiare durante l'esecuzione del programma. In Java, gli oggetti vengono creati nel montone, e il garbage collector libera automaticamente la memoria non più utilizzata.
Esempio:
public void esempio() {
int a = 10; // memorizzato nello stack
String s = new String("Ciao"); // oggetto String creato nel montone
}
Qui, a è una variabile locale nello stack, e l'oggetto String si trova nel montone.