finalキーワード意味
最終的には、メンバ変数、メソッド、クラス、およびローカル変数を宣言することができ、Javaでの予約キーワードです。あなたは、変数を再初期化しようとした場合、あなたが最終となる基準を宣言したら、参照を変更することはできません、コンパイラは、コンパイラはコンパイルエラーを報告します、コードをチェックします。
メリットfinalキーワード
- 最後のキーワードは、パフォーマンスを向上させました。JVMおよびJavaアプリケーションは、最終的な変数をキャッシュされます。
- 最後の変数は、安全に、追加の同期化のオーバーヘッドを必要とせずに、マルチスレッド環境で共有することができます。
- finalキーワード、JVMの意志方法、クラス変数と最適化。
最終的に重要なポイント
- 最後のキーワードは、メンバ変数、ローカル変数、メソッドやクラスのために使用することができます。
- 彼らは、宣言またはコンストラクタで初期化されている場合、最終的なメンバ変数は、それ以外の場合は、コンパイルエラーを報告し、初期化する必要があります。
- あなたは再び変数決勝を割り当てることができません。
- ローカル変数は、宣言の時に割り当てる必要があります。
- すべての変数で匿名クラスでは、最終的な変数でなければなりません。
- 最終的な方法をオーバーライドすることはできません。
- finalクラスは継承できません。
- 例外処理のために使用され、最後にキーワードfinalキーワードとは異なり。
- 容易に最終的なキーワード()メソッドは、ファイナライズと混同ガベージコレクションメソッドがJVM呼び出される前に、後者の方法は、オブジェクトクラスで定義されています。
- すべての変数は、それ自体が最終であるインタフェースで宣言しました。
- 最終と反比例している抽象的な両方のキーワード、finalクラスの抽象することはできません。
- コンパイル時に、最終的なメソッド結合、静的バインディング(静的バインディング)。
- 初期化されていない変数は声明の中で、最終的な空白のfinal変数(空白のfinal変数)と呼ばれる、彼らは、コンストラクタで、または(これを呼び出すことで初期化する必要があります)を初期化します。そうしないと、コンパイラは、「最後の変数(変数名)を初期化する必要があります。」文句を言うだろう
- クラス、メソッド、変数は、パフォーマンスを向上させるので、JVMを推定する機会があり、その後、最適化することができ、最終的として宣言しました。
- Javaコードの規約によると、最後の変数が一定であり、通常は定数名は大文字する必要があります。
不変のStringクラスのメリット
- 文字列は不変されている場合にのみ、文字列プールは達成することが可能。同じ文字列の異なる文字列変数は、プールを指しているので、実行時にヒープスペースを大幅に節約することができ、文字列プールを達成。
- 文字列が変数である場合、それは重大なセキュリティ上の問題を引き起こす可能性があります。文字列は不変であるため、その値を変更できないように、そうでなければ脆弱性が得られ、文字列が指すオブジェクトの値を変更します。
- 文字列は不変なので、それは文字列の同じインスタンスを複数のスレッドで共有することができ、マルチスレッドセーフです。これは、セキュリティスレッド同期の使用されることはありません。独自の文字列は、スレッドセーフです。
- 使用文字列にクラスローダは、不変のセキュリティは、正しいクラスがロードされるように、提供されます。たとえば、あなたがのjava.sql.Connectionクラスをロードすると、この値はmyhacked.Connectionを変更し、それはあなたのデータベースに依存しないに損傷を与える可能性があります。
- 文字列は不変ですので、それはハッシュコードがキャッシュされて作成されたときに、そう、あなたは再計算する必要はありません。これは、適切な地図で、キーの文字列として、文字列の処理速度が速く、他のキーオブジェクトよりもすることができます。これは、多くの場合、HashMapの文字列にキーです。