logo

Diferència entre final, finally i finalize

El final, finalment, i finalize són paraules clau en Java que s'utilitzen en el maneig d'excepcions. Cadascuna d'aquestes paraules clau té una funcionalitat diferent. La diferència bàsica entre final, finally i finalize és que el final és un modificador d'accés, finalment és el bloc a la gestió d'excepcions i finalitzar és el mètode de la classe d'objectes.

Juntament amb això, hi ha moltes diferències entre final, finally i finalize. A continuació es mostra una llista de diferències entre final, finally i finalize:

Sr. no. clau final finalment finalitzar
1. Definició final és la paraula clau i el modificador d'accés que s'utilitza per aplicar restriccions a una classe, mètode o variable. finalment és el bloc a Java Exception Handling per executar el codi important tant si es produeix l'excepció com si no. Finalize és el mètode de Java que s'utilitza per dur a terme el processament de neteja just abans que l'objecte es reculli les escombraries.
2. Aplicable a La paraula clau final s'utilitza amb les classes, mètodes i variables. Finalment, el bloc sempre està relacionat amb el bloc try and catch en el maneig d'excepcions. S'utilitza el mètode finalize() amb els objectes.
3. Funcionalitat (1) Un cop declarada, la variable final esdevé constant i no es pot modificar.
(2) El mètode final no es pot substituir per la subclasse.
(3) La classe final no es pot heretar.
(1) finalment el bloqueig executa el codi important encara que es produeixi una excepció o no.
(2) finalment el bloc neteja tots els recursos utilitzats al bloc try
El mètode finalize realitza les activitats de neteja respecte a l'objecte abans de la seva destrucció.
4. Execució El mètode final només s'executa quan l'anomenem. Finalment, el bloc s'executa tan bon punt s'executa el bloc try-catch.

La seva execució no depèn de l'excepció.

El mètode finalize s'executa just abans de destruir l'objecte.

Exemple final de Java

Considerem l'exemple següent on declarem l'edat variable final. Un cop declarat no es pot modificar.

FinalExampleTest.java

 public class FinalExampleTest { //declaring final variable final int age = 18; void display() { // reassigning value to age variable // gives compile time error age = 55; } public static void main(String[] args) { FinalExampleTest obj = new FinalExampleTest(); // gives compile time error obj.display(); } } 

Sortida:

què és hibernar a java
Diferència entre final, finally i finalize

En l'exemple anterior, hem declarat una variable final. De la mateixa manera, podem declarar els mètodes i les classes finals mitjançant la paraula clau final.

Java finalment Exemple

Vegem l'exemple següent on el codi Java llança una excepció i el bloc catch gestiona aquesta excepció. Més tard, el bloc finally s'executa després del bloc try-catch. A més, la resta del codi també s'executa normalment.

FinallyExample.java

 public class FinallyExample { public static void main(String args[]){ try { System.out.println('Inside try block'); // below code throws divide by zero exception int data=25/0; System.out.println(data); } // handles the Arithmetic Exception / Divide by zero exception catch (ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } // executes regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

Sortida:

nombre sencer doble java
Diferència entre final, finally i finalize

Exemple de finalització de Java

FinalizeExample.java

 public class FinalizeExample { public static void main(String[] args) { FinalizeExample obj = new FinalizeExample(); // printing the hashcode System.out.println('Hashcode is: ' + obj.hashCode()); obj = null; // calling the garbage collector using gc() System.gc(); System.out.println('End of the garbage collection'); } // defining the finalize method protected void finalize() { System.out.println('Called the finalize() method'); } } 

Sortida:

Diferència entre final, finally i finalize