Sobes.tech
Junior

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.