做静态初始化的变量是在构造函数之前已经被执行初始化,主要在于执行初始化的顺序上
你这个问题很赞,我特地去搜索了一下,二者其实没有本质区别的。比如下面两段代码:
//代码一:
public class Test {
public static int _i;
static {
_i = 10;
}
}
//代码二:
public class Test {
public static int _i = 10;
}
两例代码编译之后的字节码完全一致,二者是没有本质区别的。
更多解释,请参考这篇博文:
http://blog.csdn.net/darxin/article/details/5293427