解释一下static块和static变量的执行顺序

778 阅读1分钟
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…