0

クラスに静的ブロックがあるとします

public class Menu {

    private static Map<String, String> buttonEventMap = new HashMap<String, String>();

    static {
        buttonEventMap.put("show-user","show");
        buttonEventMap.put("delete-user","delete");
    }

    public static Map<String, String> getHashMap() // To get the hash map
}

ブロックのライフ サイクル、インスタンス化のタイミング、プログラムの開始時、またはクラスの最初のオブジェクトの作成時

4

2 に答える 2

6

クラスローダーによってクラスが初期化されるときに実行されます。そして、アプリケーション内の一部のコードがこのクラスを初めて必要とするとき (たとえば、静的メソッドを呼び出すため、静的フィールドの 1 つを参照するため、または新しいインスタンスを作成するため) に、クラスは遅延して初期化されます。

したがって、プログラムがクラスを使用しない場合、静的ブロックは実行されません。

于 2012-05-29T09:18:40.137 に答える
2

アプリケーションで最初にクラスにアクセスするとき。

于 2012-05-29T09:16:48.633 に答える