JAVA中初始化顺序

来源:互联网 发布:js调用webservice接口 编辑:程序博客网 时间:2024/04/30 09:02

1),载入类定义,而这个载入首先从顶层父类,也就是Object开始,按照继承的顺序依次到最终的导出类。这个过程中,各层定义的static 变量,如果有的话,被初始化。
2:对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块)>(变量、初始化块)>构造器。

3:实际上子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。

4:那么对于静态变量和静态初始化块之间、变量和初始化块之间的先后顺序又是怎样呢?是否静态变量总是先于静态初始化块,变量总是先于初始化块就被初始化了呢?实际上这取决于它们在类中出现的先后顺序。