ホームページ >Java >&#&チュートリアル >Java で静的初期化ブロックを使用する理由

Java で静的初期化ブロックを使用する理由

Barbara Streisand
Barbara Streisandオリジナル
2024-12-20 17:46:14929ブラウズ

Why Use Static Initialization Blocks in Java?

静的初期化ブロック: 個別のブロックを使用する理由

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 サイトの他の関連記事を参照してください。

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