java中的静态初始化器是为什么而存在的,要初始化变量的话,何不直接

2025-03-24 03:56:11
推荐回答(2个)
回答1:

做静态初始化的变量是在构造函数之前已经被执行初始化,主要在于执行初始化的顺序上

回答2:

你这个问题很赞,我特地去搜索了一下,二者其实没有本质区别的。比如下面两段代码:

//代码一:
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