„final“, „finally“ und „finalize“ sind Schlüsselwörter in Java, die bei der Ausnahmebehandlung verwendet werden. Jedes dieser Schlüsselwörter hat eine andere Funktionalität. Der grundlegende Unterschied zwischen „final“, „finally“ und „finalize“ besteht darin, dass die Finale ist ein Zugriffsmodifikator, Endlich ist der Block in der Ausnahmebehandlung und abschließen ist die Methode der Objektklasse.
Darüber hinaus gibt es viele Unterschiede zwischen „final“, „finally“ und „finalize“. Nachfolgend finden Sie eine Liste der Unterschiede zwischen „final“, „finally“ und „finalize“:
Herr Nr. | Schlüssel | Finale | Endlich | abschließen |
---|---|---|---|---|
1. | Definition | final ist das Schlüsselwort und der Zugriffsmodifikator, der zum Anwenden von Einschränkungen auf eine Klasse, Methode oder Variable verwendet wird. | Schließlich handelt es sich um den Block in der Java-Ausnahmebehandlung, der den wichtigen Code ausführt, unabhängig davon, ob die Ausnahme auftritt oder nicht. | finalize ist die Methode in Java, die verwendet wird, um eine Bereinigungsverarbeitung durchzuführen, kurz bevor das Objekt durch Müll gesammelt wird. |
2. | Anwendbar auf | Das Schlüsselwort Final wird mit den Klassen, Methoden und Variablen verwendet. | Der Schließlich-Block steht in der Ausnahmebehandlung immer im Zusammenhang mit dem Try-and-Catch-Block. | Die Methode finalize() wird mit den Objekten verwendet. |
3. | Funktionalität | (1) Nach der Deklaration wird die endgültige Variable konstant und kann nicht geändert werden. (2) Die endgültige Methode kann nicht von einer Unterklasse überschrieben werden. (3) Die letzte Klasse kann nicht vererbt werden. | (1) Der Block „finally“ führt den wichtigen Code aus, auch wenn eine Ausnahme auftritt oder nicht. (2) Der Block „finally“ bereinigt alle im Try-Block verwendeten Ressourcen | Die Finalize-Methode führt die Reinigungsaktivitäten in Bezug auf das Objekt vor seiner Zerstörung durch. |
4. | Ausführung | Die endgültige Methode wird nur ausgeführt, wenn wir sie aufrufen. | Der letzte Block wird ausgeführt, sobald der Try-Catch-Block ausgeführt wird. Die Ausführung ist nicht von der Ausnahme abhängig. | Die finalize-Methode wird unmittelbar vor der Zerstörung des Objekts ausgeführt. |
Letztes Java-Beispiel
Betrachten wir das folgende Beispiel, in dem wir die endgültige Variable „Alter“ deklarieren. Einmal deklariert, kann es nicht mehr geändert werden.
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(); } }
Ausgabe:
Im obigen Beispiel haben wir eine Variable final deklariert. Ebenso können wir die Methoden und Klassen mit dem Schlüsselwort final als final deklarieren.
Java endlich Beispiel
Sehen wir uns das folgende Beispiel an, in dem der Java-Code eine Ausnahme auslöst und der Catch-Block diese Ausnahme behandelt. Später wird der „finally“-Block nach dem „try-catch“-Block ausgeführt. Darüber hinaus wird auch der Rest des Codes normal ausgeführt.
EndlichExample.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...'); } }
Ausgabe:
Beispiel für die Java-Finalisierung
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'); } }
Ausgabe: