Qu'est-ce que la méthode finalize() en Java et comment la remplacer

Qu Est Ce Que La Methode Finalize En Java Et Comment La Remplacer



Java fournit au développeur une excellente fonctionnalité pour gérer efficacement les ressources système. Dans un tel scénario, le « finaliser() ” entre en vigueur et libère les ressources système avant que le ramasse-miettes ne s'exécute pour un objet spécifique. La 'Java Virtual Machine (JVM)', cependant, permet d'invoquer la méthode 'finalize()' une fois par objet.

Ce blog discutera de l'utilisation et du remplacement de la méthode 'finalize ()'.







Qu'est-ce que la méthode Java « finalize() » et comment la remplacer ?

Le ' finaliser() 'méthode de la' Objet » est invoquée par le « Garbage Collector » juste avant de supprimer l'objet qui convient au ramasse-miettes pour appliquer la tâche de nettoyage.



Syntaxe



finaliser le vide protégé ( ) jette Jetable





Dans cette syntaxe, ' protégé ” est un spécificateur d'accès qui implique que cette méthode est accessible uniquement dans la classe et les classes dérivées de cette classe.

Exemple 1 : Application de la méthode 'finalize()' en Java



Cet exemple illustre l'utilisation de la méthode « finalize() » :

classe publique Finalize2 {
finaliser le vide protégé ( ) {
System.out.println ( 'C'est la méthode Finalize!' ) ;
}
public statique vide principal ( Chaîne [ ] arguments ) {
Objet Finalize2 = nouveau Finalize2 ( ) ;
objet = nul ;
System.gc ( ) ;
System.out.println ( 'Garbage collector est invoqué !' ) ;
} }

Dans les lignes de code ci-dessus :

  • Appliquer le ' finaliser() » dans la classe « Finalize2 » comprenant l'instruction indiquée.
  • Dans ' principal », créez un objet de classe via le constructeur « Finalize2() ».
  • Maintenant, allouez à un objet un ' nul ' valeur. Il est tel que lorsqu'il a une valeur 'nulle', il n'y a pas de référence et donc, il convient au ramasse-miettes.
  • Après cela, appliquez le ' System.gc () » pour exécuter le ramasse-miettes, appelant ainsi la méthode « finalize() ».

Sortir

Ici, on peut vérifier que la méthode « finalize() » est invoquée de manière appropriée.

Exemple 2 : Remplacer la méthode Java 'finalize()'

Le ' Objet ” classe correspond à la classe mère de toutes les classes Java. La méthode 'finalize()' présente dans cette classe n'a aucune implémentation. Cependant, dans la définition de classe, les activités de nettoyage sont là. Par conséquent, le remplacement de cette méthode entraîne l'exécution des activités de nettoyage définies :

classe publique Finaliser {
finaliser le vide protégé ( ) jette Jetable {
essayer {
System.out.println ( 'La méthode class finalize()' ) ;
}
attraper ( Jetable sauf ) {
jeter sauf;
}
enfin {
System.out.println ( 'Invoquer la méthode finalize() de la classe Object' ) ;
super.finaliser ( ) ;
} }
public statique vide principal ( Chaîne [ ] arguments ) jette Jetable {
Finaliser obj = nouveau Finaliser ( ) ;
obj.finaliser ( ) ;
} }

Selon le bloc de code ci-dessus :

  • Spécifie le ' finaliser() ” méthode et déclarer la “ Jetable ” exception, respectivement.
  • Dans le ' essayer ', spécifiez l'énoncé indiqué et faites face à l'exception dans le ' attraper ' bloc.
  • Dans le ' enfin ” bloc, le “ super ” Le mot-clé pointe vers la méthode “finalize()” de la classe d'objets. Il est appliqué dans ce bloc spécifique pour assurer l'exécution de la méthode 'finalize()' même si une exception est rencontrée.
  • Dans ' principal », créez un objet de classe et remplacez la méthode « finalize() » de la classe d'objets par la méthode spécifiée/définie dans la classe « Finalize ».

Sortir

Dans ce résultat, on peut observer que la méthode 'finalize ()' est remplacée avec succès.

Conclusion

Le ' finaliser() » est appelée par le « Garbage Collector » avant de supprimer l'objet et peut être remplacée à l'aide de la méthode « super ' mot-clé. Ce blog a discuté de l'utilisation et de la substitution de la méthode 'finalize ()' en Java.