Junior — Middle
Hoe bevrijdt het garbage collection-mechanisme in Java niet-gebruikte geheugen?
sobes.tech AI
Antwoord van AI
In Java maakt het garbage collection-mechanisme (GC) automatisch geheugen vrij dat door objecten wordt ingenomen die niet meer door het programma worden gebruikt.
Werking:
- Detectie van bereikbaarheid van objecten: GC volgt objecten waar geen verwijzingen meer naar zijn vanuit actieve delen van het programma (bijvoorbeeld, uit de call stack of statische variabelen).
- Markering: Alle bereikbare objecten worden gemarkeerd als levend.
- Opruiming: Objecten die niet als levend zijn gemarkeerd, worden als afval beschouwd en hun geheugen wordt vrijgemaakt.
Java gebruikt verschillende GC-algoritmen (bijvoorbeeld Mark-and-Sweep, Generational GC), die het geheugenbeheer optimaliseren en pauzes in de uitvoering minimaliseren.
Voorbeeld: als een object binnen een methode wordt gemaakt en na het verlaten van de methode geen verwijzingen meer naar dat object bestaan, zal GC na verloop van tijd het geheugen dat door dat object wordt ingenomen, vrijmaken.