最終的な総合的な詳細分析
Javaにはキーワードfinalがあり、変数はfinal型として宣言でき、final型変数は一度しか代入できません。最終変数に繰り返し値が代入されると、コンパイル エラーが発生します。
final キーワードの意味は何ですか?
final は、メンバー変数、メソッド、クラス、ローカル変数を宣言できる Java の予約キーワードです。参照を Final として宣言すると、その参照を変更することはできなくなり、変数を再度初期化しようとすると、コンパイラによってコードがチェックされ、コンパイル エラーが報告されます。
最終変数とは何ですか?
final として宣言されたメンバー変数またはローカル変数 (メソッドまたはコード ブロック内の変数はローカル変数と呼ばれます) は、final 変数と呼ばれます。 Final 変数は、定数として static キーワードとともに使用されることがよくあります。以下は、final 変数の例です:
public static Final String LOAN = "loan";
LOAN = new String("loan") //無効なコンパイル エラー
final 変数は次のとおりです。読み取り専用。
final メソッドとは何ですか?
Final ではメソッドを宣言することもできます。メソッドの前に Final キーワードを追加することは、このメソッドがサブクラスのメソッドによってオーバーライドできないことを意味します。メソッドの機能が十分に完成しており、サブクラスで変更する必要がないと思われる場合は、メソッドを Final として宣言できます。最終メソッドは、コンパイル時に静的にバインドされ、実行時に動的にバインドする必要がないため、非最終メソッドより高速です。以下は、final メソッドの例です:
class PersonalLoan{ public final String getName(){ return "personal loan"; } } class CheapPersonalLoan extends PersonalLoan{ @Override public final String getName(){ return "cheap personal loan"; //compilation error: overridden method is final } }
final クラスとは何ですか?
finalで変更されたクラスをfinalクラスと呼びます。通常、最終クラスは機能的に完成しており、継承することはできません。 Java には、String、Interger、その他のラッパー クラスなど、final クラスが多数あります。以下は、final クラスの例です:
final class PersonalLoan{ } class CheapPersonalLoan extends PersonalLoan{ //compilation error: cannot inherit from final class }
final キーワードの利点
以下に、final キーワードを使用する利点をいくつかまとめます
Final キーワードにより、パフォーマンスが向上します。 JVM と Java アプリケーションはどちらも最終変数をキャッシュします。
Final 変数は、追加の同期オーバーヘッドなしでマルチスレッド環境で安全に共有できます。
final キーワードを使用すると、JVM はメソッド、変数、クラスを最適化します。
実質的に Final
変数は、次の状況にある場合に限り、実質的に考慮されます
1. Final として宣言されていない
2. 値を 1 回だけ割り当てます
Final を効果的に説明する最も簡単な方法このような変更後もプログラムがエラーなく実行され (コンパイルが成功した場合は ^0^)、元の実行結果と一致する場合、この変数は事実上有効であると言えます。最後の。
final の利点 ローカル変数を有効な不変変数に制限することで、開発者が並行性とスレッドセーフな開発をより適切に処理できるように設計されています。 可変フィールドは、適切に管理されていない場合、常に同時実行の問題の潜在的な原因となります。 finalキーワードの使用変数やメソッドのパラメータなどをfinalとして宣言するのは良い習慣だと思います。これを脇に置き、final として宣言すると、クラス ファイルにコンパイルするときにコンパイラが適切に最適化します。 「クラス ファイルの最適化を達成するためにソース ファイルで Final キーワードを使用するのは間違っている」に対しては多くの議論があります。final キーワードの使用については、Robert Simons Jr の「Hardcore Java」を読むことを強くお勧めします。最適化された詳細コンテンツ。
アプリケーションでは、final キーワードによりコードの意図が明確になり、宣言後に変更されないため、非常に安全です。public class FinalTest { public static final int N_ITERATIONS = 10_00_000; public static String testFinal() { final String a = "a"; final String b = "b"; return a + b; } public static String testNonFinal() { String a = "a"; String b = "b"; return a + b; } public static void main(String[] args) { long tStart, tElapsed; tStart = System.currentTimeMillis(); for (int i = 0; i < N_ITERATIONS; i++) testFinal(); tElapsed = System.currentTimeMillis() - tStart; System.out.println("Method with finals took " + tElapsed + " ms"); tStart = System.currentTimeMillis(); for (int i = 0; i < N_ITERATIONS; i++) testNonFinal(); tElapsed = System.currentTimeMillis() - tStart; System.out.println("Method without finals took " + tElapsed + " ms"); } }
Method with finals took 5 ms Method without finals took 273 ms
以上が最終的な総合的な詳細分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java におけるfinal、finally、finalize の違いには、具体的なコード例が必要です。Java プログラミングでは、final、finally、finalize という 3 つのキーワードが頻繁に使用されます。これらは綴りは似ていますが、意味と使用法が異なります。この記事では、これら 3 つのキーワードの違いを詳しく説明し、読者の理解を助けるコード例を示します。 1. Final キーワード Final キーワードは、クラス、メソッド、変数に使用できます。その機能は、変更されたクラスを作成することです

定数変数とは、値が固定されており、プログラム内に 1 つだけ存在する変数です。定数変数を宣言して値を代入すると、プログラム全体でその値を再度変更することはできません。他の言語とは異なり、Java は定数を直接サポートしません。ただし、変数を static および Final として宣言することで、定数を作成することはできます。静的 - 静的変数を宣言すると、それらはコンパイル時にメモリにロードされます。つまり、使用できるコピーは 1 つだけになります。 Final - Final 変数を宣言すると、その値は変更できなくなります。したがって、インスタンス変数を static かつ Final として宣言することで、Java で定数を作成できます。デモの例 classData{&am

Java では、final を使用してクラス、メソッド、変数を変更できます。最終的に変更されたクラスは、そのクラスが他のクラスに継承できないことを意味します。つまり、このクラスは継承ツリーのリーフ クラスであり、このクラスの設計は完璧であると考えられており、変更または拡張する必要はありません。最終的に変更されたクラスのメソッドは、そのクラスが他のクラスに継承できず、オーバーライドできないことを意味します。つまり、継承されたクラスが変更できないようにメソッドがロックされています。 Final はクラス内の変数を変更します。これは、変数が初期化されると変更できないことを示します。

Java で Final オブジェクトを作成するには、final 変数を宣言する方法と、final 修飾子を使用してクラスを宣言する方法の 2 つがあります。最終変数が宣言されると、オブジェクトはイニシャライザを介して作成されます。最終クラスが宣言されると、クラス インスタンスは不変になります。重要なのは、最終オブジェクトへの参照は変更される可能性がありますが、最終オブジェクトが指すオブジェクトは不変であるということです。

最終変数は明示的に 1 回のみ初期化できます。 Final として宣言された参照変数は、別のオブジェクトを参照するように再割り当てすることはできません。ただし、オブジェクト内のデータは変更できます。したがって、オブジェクトの状態は変更できますが、参照は変更できません。変数の場合、final 修飾子は通常、定数をクラス変数にするために static とともに使用されます。例 publicclassTest{finalintvalue=10; //以下は定数の宣言の例です: &a

最近、ColorOS15 が内部ベータテストを開始し、一部のネットユーザーが関連インターフェイスを公開しました。上の写真でわかるように、一部のネットユーザーはアップグレード後の OPPO Find X7 の「このマシンについて」インターフェイスを投稿しました。 ColorOS15Betaでは、上部のパターンに大きな変更が加えられ、下半分の構成情報も以前の2列から1列の垂直分布に変更されました。添付されているのは、Huawei、Honor、Xiaomi、OPPO、vivo、Meizu の 6 つのブランドの携帯電話の最新バージョンの「この電話/携帯電話について」インターフェイスです。ColorOS 15 に関して、どのレイアウトが気に入っているか教えてください。以前のニュースでは、LivePhoto ライブ写真を広範囲にサポートすることに加えて、「AirDrop&

最近、ColorOS15 が内部ベータテストを開始し、一部のネットユーザーが関連インターフェイスを公開しました。上の写真でわかるように、一部のネットユーザーはアップグレード後の OPPO Find X7 の「このマシンについて」インターフェイスを投稿しました。 ColorOS15Betaでは、上部のパターンに大きな変更が加えられ、下半分の構成情報も以前の2列から1列の垂直分布に変更されました。添付されているのは、Huawei、Honor、Xiaomi、OPPO、vivo、Meizu の 6 つのブランドの携帯電話の最新バージョンの「この電話/携帯電話について」インターフェイスです。ColorOS 15 に関して、どのレイアウトが気に入っているか教えてください。以前のニュースでは、LivePhoto ライブ写真を広範囲にサポートすることに加えて、「AirDrop&

PHP は、Web 開発で広く使用されている人気のオープンソースのサーバー側スクリプト言語です。 PHP 言語は、学習と使用が簡単であるだけでなく、さまざまなプログラミング パラダイム、オブジェクト指向プログラミング、関数型プログラミングなどもサポートしています。 PHP には、Static、Final、Abstract などの特別な構文キーワードがいくつかあります。これらのキーワードは、オブジェクト指向プログラミングで特別な機能を持ちます。この記事では、これらのキーワードについて詳しく紹介していきます。静的キーワード PHP では、静的キーワードには 2 つの用途があります。
