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.