Junior — Middle
Pouvez-vous expliquer ce qui se passe lors de l'appel de la méthode finalize en Java et dans quels cas elle est appelée?
sobes.tech IA
Réponse de l'IA
En Java, la méthode finalize() est appelée par le ramasse-miettes avant la suppression d’un objet de la mémoire. Sa tâche est de libérer les ressources qui ne sont pas gérées par la JVM, comme fermer des fichiers ou des connexions réseau.
Cependant, l’appel à finalize() n’est pas garanti et peut se produire avec un retard ou ne pas se produire du tout, il n’est donc pas recommandé de s’y fier pour libérer des ressources.
Exemple d’utilisation :
@Override
protected void finalize() throws Throwable {
try {
// Libérer les ressources
} finally {
super.finalize();
}
}
Dans les versions modernes de Java, il est conseillé d’utiliser des constructions try-with-resources ou de fermer explicitement les ressources, plutôt que de compter sur finalize().