对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序是什么?我们也可以通过下面的测试代码来验证这一点:
- public class Test04
- {
-
- public static String staticField = "静态变量";// 静态变量
-
- public String field = "变量";// 变量
-
- static
- {
- System.out.println(staticField);
- System.out.println("静态初始化块");
- }// 静态初始化块
-
- {
- System.out.println(field);
- System.out.println("初始化块");
- }// 初始化块
-
- public Test04()
- {
- System.out.println("构造器");
- }// 构造器
-
- public static void main(String[] args)
- {
- new Test04();
- }
- }
复制代码
运行以上代码,我们会得到如下的输出结果:
1. 静态变量
2. 静态初始化块
3. 变量
4. 初始化块
5. 构造器
可以得出结论:它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。 |