Sobes.tech
Junior

Wat zijn heap en stack?

sobes.tech AI

Antwoord van AI

Heap en Stack zijn twee geheugengebieden die door programma's worden gebruikt om gegevens op te slaan.

  • Stack (stapel) is een geheugenruimte waar lokale variabelen, functiewaarden en retouradressen worden opgeslagen. Het werkt volgens het LIFO-principe (laatst binnen, eerst eruit). Wanneer een functie wordt aangeroepen, wordt een blok op de stack gereserveerd en na voltooiing vrijgegeven. De stack heeft een beperkte grootte en wordt automatisch beheerd.

  • Heap (hoop) is een geheugenruimte voor dynamische toewijzing van objecten en gegevens, waarvan de grootte tijdens de uitvoering van het programma kan veranderen. In Java worden objecten in de heap gemaakt, en de garbage collector vrijwaart automatisch ongebruikte geheugen.

Voorbeeld:

public void voorbeeld() {
    int a = 10; // opgeslagen op de stack
    String s = new String("Hallo"); // String-object gemaakt in de heap
}

Hier is a een lokale variabele op de stack, en het String-object bevindt zich in de heap.