Junior — Middle
Que se passe-t-il lors de l'appel de la méthode finalize sur un objet en Java et quels ressources peut-il libérer?
sobes.tech IA
Réponse de l'IA
En Java, la méthode finalize() est appelée par le ramasse-miettes avant de supprimer un objet de la mémoire. Cette méthode est destinée à libérer les ressources non gérées qui ne sont pas automatiquement libérées, par exemple :
- Fermeture des descripteurs de fichiers
- Libération des connexions réseau
- Nettoyage des ressources natives
Cependant, l'utilisation de finalize() n'est pas recommandée, car son appel n'est pas garanti et peut entraîner des retards dans la libération des ressources. Les approches modernes privilégient l'utilisation de try-with-resources ou la libération explicite des ressources.
Exemple :
@Override
protected void finalize() throws Throwable {
try {
// libérer les ressources
} finally {
super.finalize();
}
}