final, final e finalize sono parole chiave in Java utilizzate nella gestione delle eccezioni. Ognuna di queste parole chiave ha una funzionalità diversa. La differenza fondamentale tra final,finalmente e finalize è che the finale è un modificatore di accesso, Finalmente è il blocco nella gestione delle eccezioni e finalizzare è il metodo della classe dell'oggetto.
Insieme a questo, ci sono molte differenze tra final,finalmente e finalize. Di seguito è riportato un elenco delle differenze tra final, final e finalize:
Signor no. | Chiave | finale | Finalmente | finalizzare |
---|---|---|---|---|
1. | Definizione | final è la parola chiave e il modificatore di accesso utilizzato per applicare restrizioni su una classe, metodo o variabile. | infine è il blocco in Java Exception Handling per eseguire il codice importante indipendentemente dal fatto che l'eccezione si verifichi o meno. | finalize è il metodo in Java che viene utilizzato per eseguire l'elaborazione di pulizia appena prima che l'oggetto venga sottoposto a Garbage Collection. |
2. | Applicabile a | La parola chiave finale viene utilizzata con classi, metodi e variabili. | Infine il blocco è sempre correlato al blocco try and catch nella gestione delle eccezioni. | Il metodo finalize() viene utilizzato con gli oggetti. |
3. | Funzionalità | (1) Una volta dichiarata, la variabile finale diventa costante e non può essere modificata. (2) il metodo finale non può essere sovrascritto dalla sottoclasse. (3) la classe finale non può essere ereditata. | (1) infine il blocco esegue il codice importante anche se si verifica o meno un'eccezione. (2) infine il blocco ripulisce tutte le risorse utilizzate nel try block | Il metodo finalize esegue le attività di pulizia rispetto all'oggetto prima della sua distruzione. |
4. | Esecuzione | Il metodo finale viene eseguito solo quando lo chiamiamo. | Infine il blocco viene eseguito non appena viene eseguito il blocco try-catch. La sua esecuzione non dipende dall'eccezione. | Il metodo finalize viene eseguito subito prima che l'oggetto venga distrutto. |
Esempio finale Java
Consideriamo il seguente esempio in cui dichiariamo la variabile finale età. Una volta dichiarato non può essere modificato.
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(); } }
Produzione:
Nell'esempio sopra, abbiamo dichiarato una variabile final. Allo stesso modo, possiamo dichiarare i metodi e le classi final utilizzando la parola chiave final.
Java infine Esempio
Vediamo l'esempio seguente in cui il codice Java genera un'eccezione e il blocco catch gestisce tale eccezione. Successivamente viene eseguito il blocco finalmente dopo il blocco try-catch. Inoltre, anche il resto del codice viene eseguito normalmente.
InfineEsempio.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...'); } }
Produzione:
Esempio di finalizzazione 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'); } }
Produzione: