Java程序初始化的顺序

Java程序初始化遵循原则:

1.静态对象(变量)优先于非静态对象(变量)初始化。其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次。

2.父类优先于子类进行初始化。

3.按照成员变量的定义顺序进行初始化。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。即:先变量后方法。 

具体执行顺序如下:

父类静态变量>父类静态代码块>子类静态变量>子类静态代码块>父类非静态变量>父类非静态代码块>父类构造函数>子类非静态变量>子类非静态代码块>子类构造函数。

原文地址:https://www.cnblogs.com/rsq-Celtic/p/9140698.html