java中加载顺序
总的方向:
- 只要是静态(静态代码块)就比其他的方法之类的优先加载
- 如果是继承了父类则优先加载父类的静态或构造方法
父类
package test;
public class FatherDemo {
static int father=30;
FatherDemo(){
System.out.println("这是父类的空构造方法");
}
static {
System.out.println("这是父类调用静态变量"+FatherDemo.father);
System.out.println("这是父类的静态代码块");
}
}
子类
package test;
public class TestDemo extends FatherDemo{
static int son=12;
TestDemo(){
System.out.println("这是子类的空构造方法");
}
static {
System.out.println("这是子类调用静态变量"+TestDemo.son);
System.out.println("这是子类的的静态代码块");
}
public static void main(String[] args) {
TestDemo testDemo=new TestDemo();
}
}
结果
总结:
- 先加载父类的静态代码块,静态变量【具体哪个先执行则是看哪个代码块在前面】------>加载子类的静态代码块,静态变量。最后加载构造方法
- 如果是静态方法,则是在调用的时候进行加载