Java の「静的初期化ブロック」の概念に遭遇したことがあるかもしれません。これらは、静的フィールドへの値の割り当てを 1 行で実行できないシナリオに対処することを目的としています。ただし、なぜこの目的に特別なブロックが必要なのか疑問に思われるかもしれません。
Java では、クラスの新しいインスタンスが作成されるたびに、非静的ブロックが実行されます。一方、静的ブロックは、クラス自体が初期化されるときに 1 回だけ実行されます。これは、作成する特定のクラスのオブジェクトの数に関係なく当てはまります。
次の例を考えてみましょう:
public class Test { static { System.out.println("Static"); } { System.out.println("Non-static block"); } public static void main(String[] args) { Test t = new Test(); Test t2 = new Test(); } }
出力:
Static Non-static block Non-static block
この例では、 「Static」を含む静的ブロックは、Test クラスが最初にロードされるときに 1 回だけ実行されます。 「非静的ブロック」を含む非静的ブロックは、Test クラスの新しいインスタンス (t および t2) が作成されるたびに実行されます。
したがって、静的初期化ブロックを使用すると、特定のアクションを実行できます。または、クラスの初期化中に 1 回だけ静的フィールドに値を割り当てますが、非静的ブロックは、クラスのオブジェクトがインスタンス化されるたびに実行する必要があるタスクに使用されます。
以上がJava で静的初期化ブロックを使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。