Final、finally、finalize は、例外処理で使用される Java のキーワードです。これらのキーワードにはそれぞれ異なる機能があります。 Final、Finalize、Finalize の基本的な違いは、 最後の はアクセス修飾子です。 ついに 例外処理のブロックであり、 仕上げる オブジェクトクラスのメソッドです。
これに加えて、final、finally、finalize の間には多くの違いがあります。 Final、finally、finalize の違いのリストを以下に示します。
いいえさん。 | 鍵 | 最後の | ついに | 仕上げる |
---|---|---|---|---|
1. | 意味 | Final は、クラス、メソッド、または変数に制限を適用するために使用されるキーワードおよびアクセス修飾子です。 | 最後に、Java 例外処理のブロックで、例外が発生したかどうかに関係なく重要なコードを実行します。 | Finalize は Java のメソッドで、オブジェクトがガベージコレクションされる直前にクリーンアップ処理を実行するために使用されます。 |
2. | 適用対象 | Final キーワードは、クラス、メソッド、変数で使用されます。 | Final ブロックは常に、例外処理の try および catch ブロックに関連しています。 | オブジェクトでは、finalize() メソッドが使用されます。 |
3. | 機能性 | (1) 一度宣言すると、final 変数は定数となり変更できなくなります。 (2) Final メソッドをサブクラスでオーバーライドすることはできません。 (3) 最終クラスは継承できません。 | (1) 例外が発生してもしなくても、finally ブロックは重要なコードを実行します。 (2)finally ブロックは、try ブロックで使用されたすべてのリソースをクリーンアップします。 | Finalize メソッドは、オブジェクトが破棄される前に、オブジェクトに対してクリーニング アクティビティを実行します。 |
4. | 実行 | Final メソッドは呼び出したときにのみ実行されます。 | try-catch ブロックが実行されるとすぐに、最後のブロックが実行されます。 その実行は例外に依存しません。 | オブジェクトが破棄される直前に、finalize メソッドが実行されます。 |
Java の最終的な例
最終変数 age を宣言する次の例を考えてみましょう。一度宣言すると変更することはできません。
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(); } }
出力:
上の例では、変数finalを宣言しました。同様に、final キーワードを使用してメソッドとクラスを Final として宣言できます。
Java の最終的な例
Java コードが例外をスローし、catch ブロックがその例外を処理する以下の例を見てみましょう。その後、try-catch ブロックの後に、finally ブロックが実行されます。さらに、コードの残りの部分も通常どおり実行されます。
最後にExample.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...'); } }
出力:
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'); } }
出力: