Junior
Mi az a heap és a stack?
sobes.tech MI
Válasz az MI-től
Heap és Stack két memória terület, amelyeket a programok az adatok tárolására használnak.
-
Stack (verem) egy memória terület, ahol helyi változók, függvényparaméterek és visszatérési címek tárolódnak. A LIFO (utolsó be, első ki) elv szerint működik. Amikor egy függvényt hívnak, egy blokkot foglal el a verem, és a végén felszabadul. A verem mérete korlátozott, és automatikusan kezelik.
-
Heap (kupac) egy memória terület, ahol dinamikusan foglalhatók objektumok és adatok, amelyek mérete futás közben változhat. Java-ban az objektumokat a kupacban hozzák létre, és a szemétgyűjtő automatikusan felszabadítja a nem használt memóriát.
Példa:
public void pelda() {
int a = 10; // a veremben tárolódik
String s = new String("Szia"); // String objektum a kupacban jön létre
}
Itt az a egy helyi változó a veremben, és a String objektum a kupacban található.