Junior
Kas ir heap un stack?
sobes.tech AI
Atbilde no AI
Heap un Stack ir divas atmiņas zonas, kuras izmanto programmas datu glabāšanai.
-
Stack (kaste) ir atmiņas zona, kurā tiek glabātas vietējās mainīgās, funkciju parametri un atgriešanas adreses. Tas darbojas pēc LIFO (pēdējais ienāca, pirmais iziet) principa. Kad tiek izsaukta funkcija, tai tiek piešķirts bloks stakā, un pēc tās pabeigšanas tas tiek atbrīvots. Staks ir ierobežota izmēra un automātiski pārvaldāms.
-
Heap (krava) ir atmiņas zona, kurā dinamiskā veidā tiek piešķirti objekti un dati, kuru izmērs var mainīties programmas darbības laikā. Java objekti tiek veidoti kravā, un atkritumu savācējs automātiski atbrīvo neizmantoto atmiņu.
Piemērs:
public void piemērs() {
int a = 10; // glabājas stakā
String s = new String("Sveiki"); // objekts String tiek veidots kravā
}
Šeit a ir vietējā mainīgā stakā, bet String objekts — kravā.