Sobes.tech
Junior — Middle

Wat gebeurt er wanneer de finalize-methode wordt aangeroepen op een object in Java en welke bronnen kan het vrijmaken?

sobes.tech AI

Antwoord van AI

In Java wordt de methode finalize() aangeroepen door de garbage collector voordat een object uit het geheugen wordt verwijderd. Deze methode is bedoeld om niet-beheerde bronnen vrij te maken die niet automatisch worden opgeruimd, bijvoorbeeld:

  • Sluiten van bestandsdescriptoren
  • Vrijmaken van netwerkverbindingen
  • Opschonen van native bronnen

Het gebruik van finalize() wordt echter niet aanbevolen, omdat de oproep niet gegarandeerd is en kan leiden tot vertragingen in het vrijmaken van bronnen. Moderne benaderingen suggereren het gebruik van try-with-resources of expliciete vrijgave van bronnen.

Voorbeeld:

@Override
protected void finalize() throws Throwable {
    try {
        // bronnen vrijmaken
    } finally {
        super.finalize();
    }
}