Java学习手册:Java程序初始化的顺序


一、Java程序初始化执行顺序

⬇1、父类(父类静态变量→父类静态代码块)
⬇2、子类(子类静态变量→子类静态代码块)
⬇3、父类(父类非静态变量→父类非静态代码块→父类构造函数)
⬇4、子类(子类非静态变量→子类非静态代码块→子类构造函数)

合在一起如下(执行顺序由高到低):
父类静态变量→父类静态代码块→子类静态变量→子类静态代码块→父类非静态变量→父类非静态代码块→父类构造函数→子类非静态变量→子类非静态代码块→子类构造函数


二、Java程序初始化遵循的原则

1、静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化很多次。
2、父类优先于子类进行初始化。
3、按照成员变量的定义顺序进行初始化。即时变量定义分散于方法之中,它们依然在任何方法(包括构造函数)被调用之前先初始化。


三、如何实现在main()函数方法前输出“Hello World”?

在Java语言中,main()函数是程序的入口方法,在程序运行时,最先加载的是main()方法,但这并不意味着main()方法就是程序运行时第一个被执行的模块。
静态代码块:在Java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
在Java语言中,由于静态块在类被加载时就会调用,因此可以在main()方法执行前,利用静态块实现输出”Hello World“的功能。代码如下:

public class Test{
	public static void main(String [] args){
		System.out.println("Hello World2");
	}
	static{
	System.out.println("Hello World1");
	}
}
//输出结果
Hello World1
Hello World2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值