java类加载顺序
测试类
package com.mc.statictest;
//作为父类
public class Test {
//父类静态属性
public static int num1;
//父类非静态属性
public int num2;
static{
System.out.println("父类静态代码块");
}
{
System.out.println("父类普通的代码块");
}
public Test() {
System.out.println("父类构造器");
}
}
package com.mc.statictest;
//类加载测试
public class ClassTest extends Test {
public static int num3;
public int num4;
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类代码块");
}
public ClassTest() {
System.out.println("子类构造方法");
}
public static void main(String[] args) {
ClassTest test = new ClassTest();
}
}
运行截图
总结:
1.先加载父类的静态属性
2.加载父类的静态代码块
3.子类的静态属性
4.子类的静态代码块
5.父类的普通成员变量
6.父类的普通代码块
7.父类的构造方法
8.子类的普通成员变量
9.子类的非静态代码块
10.子类的构造器