在代码执行调用的时候,分两种情况,一种是有继承关系的,一种是无继承关系的。
package test;
public class testObject{
private static testObject instance = null;(顺序1)
private testObject(){
(顺序4)
}
static{
instance = new testObject();(顺序2)
}
public static testObject getInstance(){
return instance;(顺序3)
}
}
一、先说下没有继承关系的执行顺序,静态变量--->静态代码块-->静态方法-->构造器。
二、有继承关系的执行顺序是:父类的静态相关-->子类的静态相关--->父类的非静态相关-->子类的非静态相关。
同一个类的内部中的方法的执行顺序是:静态变量--->静态代码块-->静态方法-->构造器。