Sobes.tech
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ě.