Junior
Co je to heap a zásobník?
sobes.tech AI
Odpověď od AI
Heap a Stack jsou dvě oblasti paměti používané programy pro ukládání dat.
-
Stack (zásobník) je oblast paměti, kde jsou uloženy lokální proměnné, parametry funkcí a adresy návratů. Funguje podle principu LIFO (poslední dovnitř, první ven). Při volání funkce je v zásobníku alokován blok a po dokončení je uvolněn. Zásobník má omezenou velikost a je automaticky spravován.
-
Heap (halda) je oblast paměti pro dynamické alokace objektů a dat, jejichž velikost se může během běhu programu měnit. V Javě jsou objekty vytvářeny na haldě a garbage collector automaticky uvolňuje nepoužívanou paměť.
Příklad:
public void priklad() {
int a = 10; // uložen ve zásobníku
String s = new String("Ahoj"); // objekt String je vytvořen na haldě
}
Zde je a lokální proměnná na zásobníku a objekt String je na haldě.