<init>方法 Java在编译之后会在字节码文件中生成<init>方法,这称为实例构造器。它会将变量初始化、语句块、调用父类的构造器等操作收敛到<init>方法中。收敛顺序为:父类变量初始化、父类语句块、父类构造函数、子类变量初始化、子类语句块、子类构造函数。
<clinit>方法 Java在编译之后会在字节码文件中生成<clinit>方法,这称为类构造器。他会将静态变量初始化、静态语句块收敛到<clinit>方法中。收敛顺序为:父类静态变量初始化、父类静态语句块、子类静态变量初始化、子类静态语句块。
<init>方法在对象实例化执行的;<clinit>方法在类加载过程中执行的。所以<clinit>方法一定比<init>方法先执行。