Sobes.tech
Junior

Šta je heap i stack?

sobes.tech АИ

Одговор од АИ

Heap i Stack su dve oblasti memorije koje programi koriste za skladištenje podataka.

  • Stack (stog) je oblast memorije gde se čuvaju lokalne promenljive, parametri funkcija i adrese povratka. Radi po principu LIFO (poslednji ušao, prvi izašao). Kada se pozove funkcija, dodeljuje se blok na stogu, a nakon završetka, oslobađa se. Stog ima ograničenu veličinu i automatski se upravlja.

  • Heap (heap) je oblast memorije za dinamičko dodeljjenje objekata i podataka, čija veličina može da se menja tokom izvršavanja programa. U Javi, objekti se kreiraju na heap-u, a sakupljač smeća automatski oslobađa neiskorišćenu memoriju.

Primer:

public void primer() {
    int a = 10; // čuva se na stogu
    String s = new String("Zdravo"); // objekat String kreira se na heap-u
}

Ovde je a lokalna promenljiva na stogu, a objekat String je na heap-u.