可能重复:
Java 静态类初始化
为什么在初始化块中更新字符串变量而不是整数(即使先写入块)
class NewClass
{
static
{
System.out.println(NewClass.string+" "+NewClass.integer);
}
final static String string="static";
final static Integer integer=1;
public static void main(String [] args)//throws Exception
{
}
}
我的输出是
static null
PS:还注意到只有当我插入 final 修饰符时,字符串变量初始化才会发生在块之前。为什么会这样?为什么不使用整数?我也将其声明为最终静态