Sobes.tech
Junior

Čo je heap a zásobník?

sobes.tech AI

Odpoveď od AI

Heap a Stack sú dve oblasti pamäte, ktoré programy používajú na ukladanie dát.

  • Stack (zásobník) je oblasť pamäte, kde sa ukladajú lokálne premenné, parametre funkcií a adresy návratov. Funguje podľa princípu LIFO (posledný dovnútra, prvý von). Pri volaní funkcie sa alokuje blok na zásobníku a po jej ukončení sa uvoľní. Zásobník má obmedzenú veľkosť a je automaticky spravovaný.

  • Heap (hromada) je oblasť pamäte pre dynamickú alokáciu objektov a dát, ktorých veľkosť sa môže počas behu programu meniť. V Jave sa objekty vytvárajú na heap-e a garbage collector automaticky uvoľňuje nepoužívanú pamäť.

Príklad:

public void priklad() {
    int a = 10; // uložené na zásobníku
    String s = new String("Ahoj"); // objekt String vytvorený na heap-e
}

Tu je a lokálna premenná na zásobníku a objekt String je na heap-e.