Junior
Quelles sont les mots-clés final et finalize en Java, et quelles sont leurs différences?
sobes.tech IA
Réponse de l'IA
En Java, final et finalize sont des concepts différents avec des objectifs différents :
finalest un mot-clé utilisé pour déclarer :- Des constantes (variables qui ne peuvent pas être modifiées après l'initialisation).
- Des méthodes qui ne peuvent pas être redéfinies dans des sous-classes.
- Des classes qui ne peuvent pas être héritées.
Exemple :
final int x = 10; // x ne peut pas être modifié
final class MyClass {} // classe non héritable
final void myMethod() {} // méthode non redéfinissable
finalize()est une méthode de la classeObject, appelée par le ramasse-miettes avant la suppression de l'objet de la mémoire. Elle est destinée à libérer des ressources, mais son utilisation n'est pas recommandée, car son appel n'est pas garanti et peut conduire à un comportement imprévisible.
Exemple :
@Override
protected void finalize() throws Throwable {
// libérer des ressources
super.finalize();
}
Différences :
finalest un mot-clé pour contrôler la modification du code.finalizeest une méthode pour le nettoyage avant la collecte des déchets, obsolète et non recommandée.