1.类何时初始化?
- main()方法所在类要先被初始化
- 第一次new这个类的对象时,会初始化这个类
- 如果子类初始化要先初始化父类
2.类初始化过程?
初始化其实就是执行<clinit>方法。一个类只有一个<clinit>方法。
<clinit>方法中是静态成员变量的初始化语句和静态代码块中的语句。
3.对象实例化过程?
对象的实例化其实是执行<init>方法。
一个类可以有多个<init>方法。一个<init>方法与一个构造器对应。
<init>方法中的语句按顺序如下。
- 父类的init,对应super(),即使不显式的写也会有。
- 非静态成员变量的初始化语句和非静态代码块中的语句
- 构造器中的语句