class prog
{
static
{
System.out.println("s1");
}
prog()
{
System.out.println("s2");
}
public static void main(String...args)
{
prog p = new prog();
}
}
输出是
s1
s2
根据输出,似乎在执行默认构造函数本身之前执行了静态初始化块。
这背后的原因是什么?