java初始化顺序

单个类

初始化顺序如下:(1)静态数据成员,(2)静态数据块,(3)实例数据成员,(4)实例数据块,(5)构造器。

第一轮,扫描静态的东西进行初始化,包含(1)、(2)。

第二轮,扫描非静态的东西进行初始化,包含(3)。

第三轮,对构造器初始化,包含(4)。

有继承

(1)父类静态数据成员,(2)父类静态数据块,(3)子类静态数据成员,(4)子类静态数据块,(5)父类实例数据成员,(6)父类实例数据块,(7)父类构造器,(8)子类实例数据成员,(9)子类实例数据块,(10)子类构造器。

第一轮,扫描静态的东西进行初始化,无论是子类还是父类的,包含(1)、(2)、(3)、(4)。

第二轮,扫描父类非静态的东西进行初始化,注意仅限于父类,包含(5)、(6)。

第三轮,对父类构造器初始化,包含(7)。

第四轮,扫描子类非静态的东西进行初始化,注意仅限于子类,包含(8)、(9)。

第五轮,对子类构造器初始化,包含(10)。

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