(1)最終:修飾子(キーワード)。クラスが最終と宣言されている場合、新しいサブクラスを導き出すことができず、親クラスとして継承することができないことを意味します。したがって、クラスは抽象的および最終の両方で宣言することはできません。変数またはメソッドを最終的に宣言することで、使用中に変更されないようにします。ファイナルとして宣言された変数は、宣言されたときに初期値を持たなければならず、将来の参照でのみ読み取ることができ、変更できません。ファイナルとして宣言された方法も使用することができ、過負荷にすることはできません。
(2)最終的に:最終的にブロックを提供して、例外処理中に任意のクリアリング操作を実行します。例外がスローされた場合、マッチングキャッチ条項が実行され、コントロールが最終的なブロックに入ります(存在する場合)。
(3)ファイナライズ:メソッド名。 Java Technologyを使用すると、Garbage Collectorがメモリからオブジェクトをクリアする前に、必要なクリーンアップを実行するためにPinalize()メソッドを使用できます。この方法は、オブジェクトが参照されていないと判断するときに、ガベージコレクターによって呼び出されます。オブジェクトクラスで定義されているため、すべてのクラスが継承されます。サブクラスは、システムリソースを整理したり、他のクリーニング作業を実行したりするためのfinalize()メソッドをオーバーライドします。 Garbage Collectorが削除する前に、Finalize()メソッドがオブジェクトで呼び出されます。
上記は少しあいまいなかもしれません、それをもっと詳細に説明しましょう
1。異なるプロパティ
(1)ファイナルはキーワードです。
(2)finalize()はメソッドです。
(3)最後に、Tryステートメントで使用されるブロックフラグです。
第二に、関数
(1)ファイナルは定数を識別するために使用されるキーワードであり、ファイナルで識別されるキーワードは一定のプールに保存されます(最終定数の特定の使用法を以下に紹介します)。
(2)finalize()メソッドはオブジェクトで定義されています。 JVMを呼び出して、C ++の破壊者と同様に、オブジェクトが「消える」ときにオブジェクトを収集するために使用されます。ユーザーが定義すると、オブジェクトが占めるリソース(I/0操作の実行など)をリリースするために使用されます。
(3)最後に{}は、コードブロックを識別するために使用され、try {}と協力します。試行中のコードが実行されているかどうかに関係なく(ここでは例外を参照)、コードブロックのプログラムは間違いなく実行されます。
3。詳細な説明
1変数を定義します
1.1ファイナルが基本型変数を定義する場合、宣言時またはコンストラクターで他の場所で使用するために変数の初期化を必要とする必要があります。このキーワードで定義された定数は、初期化段階を除いて変更することはできません。
1.2ファイナルはオブジェクトへの参照を定義し、参照の初期化は定数を定義するときの要件と一致します。キーワードで定義されたオブジェクトのコンテンツは変更できますが、参照によって指し示されるアドレスを変更することはできません。
2パラメーターを定義します
このパラメーターによって定義された変数が渡されると、メソッドはパラメーター(エラー)のコンテンツを変更できません。これは、変数を定義するための変更ルールと同じです。 Javaメソッドは、Javaメソッドの基本タイプを渡すときに値を渡し、Javaメソッドはオブジェクトのパラメーターを渡します。 <結局、このメソッドはJavaのメソッドを渡す「コピー」の渡されに依存します。基本タイプの場合、最初にコピーを作成し、渡された値をコピーに割り当ててからコピーで操作します。オブジェクトタイプの場合、最初に参照コピーを作成し、渡されたオブジェクト参照をコピー>に割り当てます>
例:メソッド(最終的なINTテスト);
いくつかの本は、ここでの最終定義パラメーター、特にオブジェクトのパラメーターは非常に便利であり、メソッド内のオブジェクトのコンテンツを変更できないと述べています。この声明は間違っています!このようにして、いくつかの機能的なプログラミング特性があると思います。オブジェクトのコンテンツを変更することはできません。ここでは、オブジェクトのコンテンツを変更できます。
? ?このパラメーターを定義することの使用は何ですか? ?
文字列は最終的に生まれました!
3定義方法
(1)最終キーワードを使用して定義されたメソッドは、サブクラスによって継承できません。
(2)コンパイラがこのメソッドへのすべての呼び出しをインライン(インライン)動作に変換できるようにします。つまり、ルーチンメソッド呼び出し(ブレークポイントを保存し、スタックを押します)を作成する代わりに、このメソッドをコールで直接コピーできます。これにより、プログラムの効率が向上します。ただし、多すぎる場合、これによりコードが膨満し、効率に影響するため、この方法は注意して使用する必要があります。 。
4定義クラス
最終クラスは誰にも継承できません。つまり、このクラスは継承ツリーのリーフクラスであり、このクラスは完璧と見なされ、変更は必要ありません(要するに、推奨されません)