参考答案
1. Java程序的初始化遵循3个原则
- 静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次;
- 父类优先于子类进行初始化。
- 按照成员变量的定义顺序进行初始化。
PS. 优先级依次递减。
2. Java程序初始化的顺序
Java程序初始化工作可以在许多不同的代码块中来完成(例如静态代码块、构造函数等),它们执行的顺序如下:
- 父类静态变量
- 父类静态代码块
- 子类静态变量
- 子类静态代码块
- 父类非静态变量
- 父类非静态代码块
- 父类构造函数
- 子类非静态变量
- 子类非静态代码块
- 子类构造函数
3. Java程序初始化执行顺序实例
class Base{ static{ System.out.println("Base static block"); } { System.out.println("Base block"); } public Base(){ System.out.println("Base constructor"); } } public class Derived extends Base{ static{ System.out.println("Derived static block"); } { System.out.println("Derived block"); } public Derived(){ System.out.println("Derived constructor"); } public static void main(String args[]){ new Derived(); } }
运行结果:
Base static block Derived static block Base block Base constructor Derived block Derived constructor
以上,是Java面试题【 Java类初始化顺序是怎样的】的参考答案。
输出,是最好的学习方法。
立即行动,在评论区记录下你的问题、笔记或补充~
—end—