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.