1. .java => 编译 => .class => <clinit> => 类构造器
2. 类构造器 将静态变量(初始化)和静态语句块收敛(将一系列操作集合起来执行)到<clinit>
收敛顺序:父类静态变量初始化,父类静态语句块,子类静态变量初始化,子类静态语句块,
3. 父类是接口,则不调用父类的<clinit>
4. 若一个类没有static 语句块,或者static 变量赋值,则可以没有<clinit>
5. <clinit> 类加载时期执行
1. .java => 编译 => .class => <init> => 实例构造器
2. 实例构造器 将变量(初始化),语句块,父类构造器,收敛到<init>
收敛顺序(非静态):父类变量初始化,父类语句块,父类构造函数,子类变量初始化,子类语句块,子类构造器
3. <init> 对象实例化时期执行
对象实例化执行的整个过程
父类静态变量初始化,父类静态语句块,子类静态变量初始化,子类静态语句块,父类变量初始化,父类语句块,父类构造函数,子类变量初始化,子类语句块,子类构造器。
标签:语句,初始化,Java,变量,静态,子类,父类 From: https://blog.51cto.com/u_11290086/5804053