何时在Java类中实例化静态块

时间:2012-05-29 09:14:25

标签: java static static-block

假设Class

中有静态块
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
}

块的生命周期,实例化时,程序启动时或创建类的第一个对象

时是什么

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

首次访问应用程序中的类时。