Ce sunt heap și stack?
sobes.tech AI
Răspuns de la AI
Heap și Stack sunt două zone de memorie utilizate de programe pentru stocarea datelor.
-
Stack (stivă) este o zonă de memorie unde sunt stocate variabilele locale, parametrii funcțiilor și adresele de returnare. Funcționează după principiul LIFO (ultimul venit, primul ieșit). Când se apelează o funcție, se alocă un bloc în stivă, iar după finalizare, acesta este eliberat. Stiva are o dimensiune limitată și este gestionată automat.
-
Heap (heap) este o zonă de memorie pentru alocarea dinamică a obiectelor și datelor, a căror dimensiune poate varia în timpul execuției programului. În Java, obiectele sunt create în heap, iar colectorul de gunoi eliberează automat memoria neutilizată.
Exemplu:
public void exemplu() {
int a = 10; // stocat în stivă
String s = new String("Salut"); // obiect String creat în heap
}
Aici, a este o variabilă locală în stivă, iar obiectul String se află în heap.