ホームページ  >  記事  >  Java  >  静的キーワード: Java での静的ブロックのデコード

静的キーワード: Java での静的ブロックのデコード

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 22:08:29783ブラウズ

Static Keyword: Decoding Static Blocks in Java

Java の static キーワードに関するシリーズの最初の投稿へようこそ!このシリーズでは、静的変数、メソッド、ネストされたクラス などのさまざまな概念を詳しく説明し、これらの概念を簡単に理解できるように、一口サイズの投稿で取り上げます。

この投稿では、クラスの読み込み中に 1 回コードを実行するために使用される特別な機能である 静的ブロックに焦点を当てます。実践的な例を通じて、静的ブロックとは何か、どのように機能するか、いつ使用するかについて学びます。


Java の静的ブロックとは何ですか?

静的ブロックは、クラスが JVM の ClassLoader によってメモリにロードされるときに 1 回だけ実行される static キーワードでマークされたコード ブロックです。

主な特徴:

  1. クラスのロード中に 1 回実行
  2. メインメソッドまたは任意のコンストラクターの前に実行されます。
  3. 静的変数を初期化できます、または静的メソッドを呼び出すことができます。

コード例: 静的ブロックの実行

以下は、比較のために 静的ブロックコンストラクター および イニシャライザー ブロック の動作を示すプログラムです。

プログラム: 動作中の静的ブロック


出力の説明

出力:

何が起こったのですか?

  1. 静的ブロックの実行

    • クラスがロードされたときに静的ブロックが 1 回実行され、constantNumber が 100 に初期化されました。
  2. オブジェクトの作成と初期化ブロック

    • オブジェクトの作成ごとに、イニシャライザー ブロックコンストラクターの前に実行されました。
  3. コンストラクターの動作

    • デフォルトパラメータ化されたコンストラクターの両方が動作していることを観察しました。

静的ブロックを使用する場合

  • 静的変数の初期化: 静的ブロックは、複雑なロジックや外部リソースを必要とする静的変数を初期化するのに最適です。
  • コードを 1 回実行: クラスのライフサイクル全体でコードを 1 回だけ実行する必要がある場合 (例: ロギング または リソースの読み込み) は、静的ブロックが適切な場所です。
  • 静的メソッドを自動的に呼び出す: 静的ブロック内で静的メソッドを呼び出すことができ、main で明示的に呼び出されなくても確実に実行されます。

静的ブロックと他のブロックの主な違い

Feature Static Block Initializer Block Constructor
When Executed On class loading Before each constructor call On object creation
How Many Times Once Every time an object is created Every time an object is created
Purpose Initialize static members Initialize instance variables Initialize the object
Access Restrictions Can’t access non-static members directly Can access both static and non-static Can access both static and non-static
機能
静的ブロック

初期化ブロック コンストラクター

実行時 クラスのロード時 各コンストラクター呼び出しの前 オブジェクトの作成時 何回

1 回 オブジェクトが作成されるたび オブジェクトが作成されるたび 目的
静的メンバーを初期化する インスタンス変数を初期化する オブジェクトを初期化する

アクセス制限

非静的メンバーには直接アクセスできません 静的と非静的の両方にアクセスできる 静的と非静的の両方にアクセスできる
  • 結論
  • Java の静的ブロックは、

    クラスのロード中にコードを 1 回実行する
  • ための強力なツールです。これらは、静的変数を初期化し、静的メソッドを呼び出し、リソースを効率的に管理する方法を提供します。静的ブロックを理解すると、より適切で最適化された Java コードを作成し、面接での難しい質問に答えることができます。
  • 静的キーワードに関連するより重要な概念を探求する今後の投稿にご期待ください。

  • 関連記事

Java の基礎

アレイインタビューの要点 Java メモリの基礎 コレクション フレームワークの基本 コーディングを楽しんでください!

以上が静的キーワード: Java での静的ブロックのデコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Java学習の旅次の記事:なし