何时初始化静态字段?如果我从不实例化一个类,但是我访问一个静态字段,是否所有静态块和私有静态方法用于实例化那个时刻调用的私有静态字段(按顺序)?
如果我调用静态方法怎么办?它是否也运行所有静态块?方法之前?
什么是最好,最干净的方法?具体来说,我需要静态初始化程序块中的一些代码才能在该类中运行,但我希望尽可能使它看起来更干净.
我正在尝试运行此代码,但我发现了final的这种行为与静态:代码运行时没有执行A的静态块.请提供给我原因.
class A {
final static int a=9;
static { //this block is not executing ??
System.out.println("static block of A");
}
}
class Manager {
static {
System.out.println("manager sib");
}
public static void main(String ...arg) {
System.out.println("main");
System.out.println(A.a);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么A类的静态块不运行?