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

它在类被类加载器初始化时执行。并且该类被延迟初始化,第一次应用程序中的某些代码需要该类(例如调用静态方法,或引用其静态字段之一,或创建新实例)。

因此,如果程序从不使用该类,则将永远不会执行静态块。

于 2012-05-29T09:18:40.137 回答
2

当您第一次访问应用程序中的类时。

于 2012-05-29T09:16:48.633 回答