java初始化顺序

1.无继承情况下的java初始化顺序

  a:静态成员变量首先初始化

 b:普通成员的初始化

 C:执行构造函数



2.继承情况下的java初始化顺序

a:集成体系的所有静态成员初始化(先父。。后子)

b:父类初始化完成(普通成员的初始化---》构造函数的调用)

c:子类初始化(普通成员------》构造函数)




1.首先初始化静态域是因为静态域是放在方法区和class对象在一起的。
2.由于类加载的时候,会向上查找基类,因为子类的初始化依赖于基类首先初始化。所以会首先发生“基类->子类"顺序的类加载,类加载过程中,顺便完成了静态域的初始化。
3.另外一条规则是初始化块和域的初始化按照声明的顺序进行。

你可能感兴趣的:(java初始化顺序)