类实例化前、调用类的静态方法之前,会初始化类,再实例化类或调用静态方法。
实例初始化:实例变量→实例代码块→实例构造器
类初始化:类变量(静态变量→全局变量)→静态代码块
类静态方法:调用的时候执行
package com.cmb.tdm.fee.invest;
//判断以下程序的执行顺序
public class CodeOrder{
// 入口
// A X Y C B Z
public static void main(String[] args){
System.out.println("Y"); //⑥
staticFunction(); //⑦
new CodeOrder(); //⑧
System.out.println("Z"); //⑨
}
// 静态代码块
static{
System.out.println("A"); //①
}
static CodeOrder codeOrder = new CodeOrder("E"); //②
// 构造方法
public CodeOrder(){
System.out.println("B");
}
// 构造方法
public CodeOrder(String E){
System.out.println(E); //④
}
// 实例语句块
{
System.out.println("C"); //③
}
// 静态代码块
static {
System.out.println("X"); //⑤
}
public static void staticFunction() { // 静态方法
System.out.println("4");
}
}
//输出结果:A
//C
//E
//X
//Y
//4
//C
//B
//Z