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

Java で静的初期化ブロックを使用する必要があるのはいつ、なぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 03:47:11895ブラウズ

When and Why Should You Use Static Initialization Blocks in Java?

静的初期化ブロックについて

Java では、静的ブロックとも呼ばれる静的初期化ブロックは、内部に含まれる特別なコード ブロックです。静的フィールドを初期化するクラス定義。静的フィールドを宣言内で直接初期化できるのは事実ですが、静的ブロックが必要となる特定のシナリオがあります。

静的ブロックを使用する理由

静的ブロックは主に、静的フィールドの初期化に複雑な操作や 1 行では実現できない外部依存関係が必要な場合に使用されます。たとえば、データベース クエリまたはファイルの読み取りに基づいて値を割り当てる必要がある静的フィールドがある場合、これらの操作を実行し、結果を静的フィールドに割り当てるには静的ブロックが必要になります。

非静的ブロックとの比較

静的ブロックを、毎回実行される非静的 (またはインスタンス) ブロックと区別することが重要です。クラスのインスタンスが作成されたとき。対照的に、静的ブロックは、クラス自体が初期化されるときに一度だけ実行されます。

次のコードを考えてみましょう:

public class Test {

    static {
        // Static block - executed once when the class is initialized
        System.out.println("Static");
    }

    {
        // Non-static block - executed every time an instance is created
        System.out.println("Non-static block");
    }

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

main メソッドを実行すると、次の出力が表示されます。

Static
Non-static block
Non-static block

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

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

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