static {
name="zhangsan";
}
private static String name=null;
上面这段代码,把name打印出来是null
private static String name=null;
static {
name="zhangsan";
}
上面这段代码,把name打印出来是zhangsan
static {
name="zhangsan";
}
private static String name;
上面这段代码,把name打印出来是zhangsan
由此可见,变量名首先被加载,而赋值的时候,无论是直接在变量上赋值还是在静态代码块中赋值,都是按照代码的顺序赋值的。
转自:解释一下static块和static变量的执行顺序 my.oschina.net/134596/blog…