• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

java程序初始化顺序是怎样的

使用场景

在java程序中,当实例化对象时,对象的所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象。

原则
变量优先于块、静态优先于非静态。
父类优先于派生类初始化。
按照成员变量定义的顺序来进行初始化,即使变量定义散布于方法定义之中,它们仍然在任何方法(包括构造器)被调用前初始化。
初始化顺序
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类非静态变量
父类非静态代码块
父类构造函数
子类非静态变量
子类非静态代码块
子类构造函数

初始化示例代码

java培训技术
java培训技术

分别执行主函数里的三条指令,执行结果如下。

Base.A()
父类静态变量
父类静态代码块
子类静态变量
子类静态块
父类普通静态方法

Derived.A()
父类静态变量
父类静态代码块
子类静态变量
子类静态块
子类普通静态方法

new Derived()
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类非静态变量
父类非静态代码块
父类构造函数
子类非静态变量
子类非静态代码块
子类构造函数
了解更多java培训课程相关技术内容欢迎关注小编!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注