Java类中的初始化顺序 发表于 2019-04-19 | 分类于 Java 1. 下面详细介绍了类中变量的初始化顺序 1234567891011121314151617181920212223242526272829303132public class Test { // 1.第一步,准备加载类 static int num = 4; // 2.第二步,静态变量和静态代码块的加载顺序由编写先后决定 static { // 3.第三步,静态块,然后执行静态代码块,因为有输出,故打印a System.out.println("a"); } public static void main(String[] args) { new Test(); // 4.第四步,new一个类,但在new之前要处理匿名代码块 } int a = 4; // 5.第五步,按照顺序加载变量和执行匿名代码块 { System.out.println("b"); // 6.第六步,按照顺序加载匿名代码块,代码块中有打印 } int b = 5; // 7.第七步,按照顺序加载变量 { System.out.println("c"); // 8.第八步,按照顺序打印c } Test() { System.out.println("d"); // 9.第久步,最后加载构造函数,完成对象的建立 } static void run() { // 静态方法,调用的时候才加载// 注意看,e没有加载 System.out.println("e"); }} 2. 一个简单的小测试1234567891011121314151617181920212223242526272829303132333435363738public class TestAB { public static void main(String[] args) { // 142356 B b = new B(); }}class A { static int a = 4; static { System.out.print(1); } { System.out.print("2"); } public A() { System.out.print(3); }}class B extends A { static int a = 5; static { System.out.print(4); } { System.out.print("5"); } public B() { System.out.print(6); }}