ホームページ >Java >&#&チュートリアル >Java の静的初期化ブロックを使用する必要があるのはどのような場合ですか?

Java の静的初期化ブロックを使用する必要があるのはどのような場合ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-21 22:59:14313ブラウズ

When Should You Use Java's Static Initialization Blocks?

静的初期化ブロック: その必要性を解明する

Java では、複数行のコードを必要とする静的フィールドを初期化するために静的初期化ブロックがよく使用されます。値の割り当て用。ただし、この目的のために別のブロックが必要な理由はすぐには明らかではないかもしれません。

主な違いは、非静的ブロックと比較したこれらのブロックの実行タイミングにあります。非静的ブロック (インスタンス初期化ブロックと呼ばれることもあります) は、クラスのインスタンスが構築されるたびに実行されます。一方、静的初期化ブロックは、その型で作成されたオブジェクトの数に関係なく、クラス自体が初期化されるときに 1 回だけ実行されます。

次の例を考えてみましょう。

public class Test {

    static {
        // Static Block - Executes once upon class initialization
    }

    {
        // Non-Static Block - Executes every time an instance is created
    }

    public static void main(String[] args) {
        Test t = new Test(); // Creates new instance
        Test t2 = new Test(); // Creates new instance
    }
}

Whenこのコードが実行されると、期待される出力は次のとおりです:

Static Block
Non-Static Block
Non-Static Block

これは、静的ブロックが 1 回だけ実行されるのに対し、非静的ブロックは実行されることを示しています。クラスのインスタンスが作成されるたびに実行されます。

要約すると、静的初期化ブロックは、複数行のコードを必要とする複雑な初期化タスクを実行する必要があり、クラスのロード時に一度だけ実行する必要がある場合に役立ちます。インスタンス化されるクラスのインスタンスの数。

以上がJava の静的初期化ブロックを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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