java初始化顺序

一、知识点:

1. 父类静态变量;

2.子类静态变量;

3.父类成员变量和构造代码块;

4.父类构造方法;

5.父类成员变量和构造代码块;

6.父类构造方法;

二、静态变量、静态代码块和静态方法的初始化顺序

1. 静态变量;

2.静态代码块;

3.进入主函数类,根据静态方法的调用选择性初始化。

静态变量:如果静态变量是一个对象的引用,需要先初始化这个对象之后才可以将引用指向它。

静态方法:只允许访问静态变量,不能使用this调用,可以使用类名.方法名调用。

静态代码块:在类的初始化时,只执行一次,并且在同一个类的main函数中之前执行。

三、示例


结果为:2    3     a=110.b=0    1     4

分析:

执行静态变量的初始化,但是该变量引用的是该类的实例。从java的角度,一旦开始初始化静态部分,无论是否完成,后续也不会再重新触发初始化流程了,这导致实例初始化置于静态初始化之前,因此a有值,b没有值。

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