Tout ce que vous devez savoir sur Final, Enfin et Finaliser en Java



Cet article sur Final, Enfin et Finaliser en Java vous donnera une liste complète des différences entre les mots-clés Final, Enfin et Finaliser ainsi que des implémentations pratiques.

Si vous avez une expérience antérieure de , alors vous avez peut-être remarqué que les enquêteurs ont tendance à poser des questions délicates généralement tirées des concepts de base. L'une de ces questions qui est le plus souvent posée est de différencier entre final, enfin et finaliser en . À travers cet article, je tracerai une ligne claire entre final, enfin et finaliser en Java, ce qui vous aidera à obtenir de meilleures informations.

Dans cet article, je couvrirai les sujets suivants:





Alors, commençons avec le tout premier mot-clé parmi final, enfin et finalisons en Java.

Mot-clé final

En Java, final est un mot-clé qui peut également être utilisé comme modificateur d'accès. En d'autres termes, le mot-clé final est utilisé pour restreindre l'accès d'un utilisateur. Il peut être utilisé dans divers contextes comme:



  1. Finale variable
  2. Méthode finale
  3. Classe finale

Avec chacun d'eux, le mot-clé final a un effet différent. Voyons maintenant comment cela affecte chacun d'eux un par un.

1. Fin variable

Chaque fois que le mot-clé final dans est utilisé avec une variable, un champ ou un paramètre cela signifie qu'une fois que la référence est passée ou que l'instanciation est effectuée, sa valeur ne peut pas être modifiée tout au long de l'exécution du programme. Dans le cas où un sans qu'aucune valeur n'ait été déclarée comme finale, elle est connue sous le nom de variable finale vide / non initialisée et ne peut être initialisée que via un constructeur.

Voyons maintenant un exemple.



public class A {int var1 = 123 // déclaration des variables finales final int var2 = 345 final int var3 // Tentative d'initialisation d'une variable finale vide var = 555 // Erreur A () {var1 = 111 // Pas d'erreur var2 = 333 // Erreur de compilation // Initialisation d'une variable finale vide var3 = 444 // Aucune erreur} // Passage des paramètres finaux void avg (int param1, final int param2) {param1 = 2345 // Pas d'erreur param2 = 1223 // Erreur de compilation} // déclaration des champs finaux void show () {final int fieldVal = 300000 fieldVal = 400000 // Erreur}}

Il s'agissait donc de savoir comment le mot clé final affecte une variable. Voyons maintenant comment une méthode en est affectée.

2. Méthode finale

En Java, chaque fois qu'une méthode est déclarée comme finale, elle ne peut pas être par n'importe quelle classe enfant tout au long de l'exécution du programme.

Voyons un exemple.

// FINAL METHOD class A {final void method_abc () {System.out.println ('Ceci est une méthode finale et ne peut pas être remplacé')} void method_xyz () {System.out.println ('Ceci est une méthode normale et peut être remplacé ')}} la classe B étend A {void method_abc {// Erreur de compilation} void method_xyz () {System.out.println (' Ceci est une méthode remplacée dans la classe B ')}}

Jusqu'à présent, vous avez déjà vu les résultats de la déclaration d'une variable et d'une méthode final, allons maintenant plus loin et voyons ce qui se passe lorsqu'une classe est déclarée comme finale en Java.

3. Classe finale

En Java, chaque fois qu'une classe est déclarée comme finale, elle ne peut pas être . En effet, une fois qu'une classe est déclarée comme finale, toutes les données membres et méthodes contenues dans la classe seront implicitement déclarées comme finales. De plus, une fois qu'une classe est déclarée comme finale, elle ne peut plus être déclarée comme abstraite. En d'autres termes, une classe peut être l'une des deux, finale ou abstraite.

Voyons un exemple.

// FINAL CLASS classe finale A {// corps de la classe} classe B étend A {// Erreur de compilation // corps de la classe}

J'espère que maintenant, vous avez clairement compris le fonctionnement du mot-clé final. Alors, passons maintenant à cet article sur final, enfin et finalisons en Java pour découvrir le rôle du mot-clé finally.

Enfin bloquer

En Java, est enfin un bloc optionnel qui est utilisé pour le . Il est généralement précédé d'un bloc try-catch. Enfin, le bloc est utilisé pour exécuter un code important tel que le nettoyage des ressources ou libérer l'utilisation de la mémoire, etc. Un bloc finally sera exécuté indépendamment du fait qu'une exception soit gérée ou non. Ainsi, envelopper les codes de nettoyage dans un bloc finally est considéré comme une bonne pratique. Vous pouvez également l'utiliser avec un bloc try sans avoir besoin d'un bloc catch avec lui.

Voyons maintenant un exemple de la même chose.

class A {public static void main (String args []) {try {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } enfin {System.out.println ('Final Block')}}}

Jusqu'à présent, j'ai déjà discuté des mots clés finaux et enfin en Java. Jetons maintenant un peu de lumière sur le dernier mot-clé parmi les trois, à savoir le mot-clé finalize en Java.

Finalize, méthode

Finalize est une méthode non statique protégée qui est définie dans la classe Object et est donc disponible pour tous les objets en Java.Cette méthode estappelé par le garbage collector avant qu'un objet ne soit complètement détruit.Comme parfois,une peut avoir à accomplir une tâche importante comme la fermeture d'une connexion ouverte, la libération d'une ressource, etc. avant qu'elle ne soit détruite. Si ces tâches ne sont pas effectuées, cela peut diminuer l'efficacité du programme. Ainsi, legarbage collector l'appelle pour les objets qui ne sont plus référencés et qui ont été marqués pour le garbage collection.

Cette méthode est déclarée protégée pour restreindre son utilisation de l'extérieur de la classe. Mais vous pouvez le remplacer à partir de la classe pour définir ses propriétés au moment du garbage collection.

qu'est-ce que le survol en css

Voyons un exemple de la même chose.

public class A {public void finalize () jette Throwable {System.out.println ('L'objet est détruit par le garbage collector')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Avec cela, nous arrivons à la fin de cet article sur final, enfin et finaliser en Java. Pour conclure cela, j'ai ajouté une comparaison entre les trois mots-clés qui vous aidera à récupérer les différences majeures en un coup d'œil.

Tableau de comparaison - Final vs Final vs Finalize Mots-clés en Java

Facteur Final finalement Finaliser
Définition Final est un mot-clé et est utilisé comme modificateur d'accès en JavaEnfin, un bloc en Java est utilisé pour la gestion des exceptionsFinalize est une méthode en Java utilisée pour le garbage collection
Application Final en Java est utilisé avec des variables, des méthodes et des classes pour définir les autorisations d'accèsEnfin, le bloc est utilisé avec un bloc try and catchLa méthode Finalize en Java est utilisée avec des objets qui ne sont plus utilisés
Fonction La variable finale en Java est une constante dont la valeur ne peut pas être modifiée une fois affectée.

La méthode finale en Java ne peut pas être remplacée par ses classes enfants.

La classe finale en Java ne peut être héritée par aucune classe enfant.

Enfin, le bloc en Java aide à nettoyer les ressources qui ont été utilisées dans le bloc tryLa méthode Finalize aide à nettoyer les activités de l'objet avant qu'il ne soit détruit par le garbage collector
Exécution Il est exécuté lorsqu'il est appelé par le compilateurS'exécute juste après l'exécution du bloc try-catchIl s'exécute juste avant la destruction d'un objet

J'espère qu'à travers cette Final, Enfin et Finaliser en Java, j'ai pu clarifier les concepts et vous aider à ajouter de la valeur à vos connaissances.

Si vous avez trouvé cet article sur «Final, enfin et finaliser en Java 'Pertinent, Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce Final, enfin et finaliser en Java et nous reviendrons vers vous.