类变量的初始化顺序

类中有静态成员变量,非静态成员变量,静态代码块,它的初始化顺序:
1、静态成员变量和静态代码块。
静态成员变量和静态代码块都是用static修饰的,他们的初始化顺序都优先于非静态成员变量。在第一次new一个对象的时候,就会被初始化,而且只初始化一次,引用类型的静态变量初始化为null,基本类型的静态变量初始化值为默认值。静态成员变量和静态代码块的初始化顺序是根据变量代码块定义的先后顺序来初始化的,写在前面的先初始化。静态成员变量是类的实例计数器,为什么这么说呢,因为大家都公用一个成员变量,修改的也是同一份值。

2、静态成员变量、静态代码块和非静态成员变量
static修饰的静态成员变量的初始化顺序优先于非静态成员变量。和在类中所处的位置无关。

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