Java类初始化顺序学习笔记
一,单个类的初始化
?????
???? 对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。
?
二,继承关系中的类的初始化
?
???? 在有继承关系的类中,其初始化顺序并不是父类完全初始化完毕后才进行子类的初始化,实际上子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。
?
????
?? 注意:对于静态变量和静态初始化块之间、变量和初始化块之间的先后顺序,不一定静态变量总是先于静态初始化块,变量总是先于初始化块就被初始化,实际上这取决于它们在类中出现的先后顺序。静态变量和静态初始化块是依照他们在类中的定义顺序进行初始化的;同样,变量和初始化块也遵循这个规律。
?