静态代码块、静态变量、构造方法及构造块执行顺序 IT

静态代码块、静态变量、构造方法及构造块均是在类被加载的时候初始化。

静态块在类被重复调用的时候只会加载一次。

静态代码块和静态变量的执行顺序是按代码先后顺序执行的。

 1 package cnom.test.testUtils;
 2 
 3 public class TestStaticLoadSort {
 4 
 5     private static String str = "h";
 6 
 7     public TestStaticLoadSort() {
 8         System.out.println("构造方法.");
 9     }
10 
11     static {
12         str += "i";
13         System.out.println("静态块");
14     }
15 
16     {
17         System.out.println("构造块");
18     }
19 
20     public static void main(String[] args) {
21         TestStaticLoadSort tss = new TestStaticLoadSort();
22         System.out.println(tss.str);
23         TestStaticLoadSort tss1 = new TestStaticLoadSort();
24     }
25     /**
26      * ===============输出结果=============
27      * 静态块
28      * 构造块
29      * 构造方法.
30      * hi
31      * 构造块
32      * 构造方法.
33      */
34 }

总结执行先后顺序为:静态块/静态变量>构造块>构造方法。

原文地址:https://www.cnblogs.com/itfeng813/p/11577249.html