分为两种,一种是本类的初始化,一种是含有父类的初始化顺序。这里分开来说,

本类的初始化顺序是:静态变量、静态初始化块、变量、初始化块、构造函数

继承类的初始化顺序是:父类静态变量、父类静态初始化块、子类静态变量、子类静态初始块、父类变量、父类初始化块、父类构造函数、子类变量、子类初始化块、子类构造函数。

 

Java对象初始化顺序(绝对正确)看着一个就够了_面试

Java对象初始化顺序(绝对正确)看着一个就够了_静态变量_02

 可以看到  与你写静态变量和静态代码块的顺序有关   ,我们规定 先写静态变量 在写静态代码块 ,所以 就成为 静态变量初始化优先于静态代码块了

By CaesarChang               

~关注我  带你看更多精品技术和面试必备