1.无继承情况下的java初始化顺序
a:静态成员变量首先初始化
b:普通成员的初始化
C:执行构造函数
2.继承情况下的java初始化顺序
a:集成体系的所有静态成员初始化(先父。。后子)
b:父类初始化完成(普通成员的初始化---》构造函数的调用)
c:子类初始化(普通成员------》构造函数)
1.首先初始化静态域是因为静态域是放在方法区和class对象在一起的。
2.由于类加载的时候,会向上查找基类,因为子类的初始化依赖于基类首先初始化。所以会首先发生“基类->子类"顺序的类加载,类加载过程中,顺便完成了静态域的初始化。
3.另外一条规则是初始化块和域的初始化按照声明的顺序进行。