Sobes.tech
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 :

  • final est 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 classe Object, 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 :

  • final est un mot-clé pour contrôler la modification du code.
  • finalize est une méthode pour le nettoyage avant la collecte des déchets, obsolète et non recommandée.