java中构造方法、实例初始化、静态初始化执行顺序探索

java中构造方法、实例初始化、静态初始化执行顺序探索

除了构造方法,java中比较有特点的、可以用来初始化的还有实例初始化块和静态初始化
实例初始化块:在类中用{}括起来的语句,在每个对象实例创建时都会被执行:

class instance {
	{
		 //实例初始化块
	} 
}

静态初始化块:在类中static{}中的语句,仅在这个类第一次被用到时被执行,通常用来初始化静态变量

class instance {
	static{
		 //静态初始化块
	} 
}


给出下面一个例子来探究java中构造方法、实例初始化、静态初始化的执行顺序:

可见输出为

这是最高父类的静态初始化
这是父类的静态初始化
这是子类的静态初始化
这是最高父类的实例初始化
这是最高父类的构造方法
这是父类的实例初始化
这是父类的构造方法
这是子类的实例初始化
这是子类的构造方法

易知执行顺序为:

1.首先执行父类->子类的静态初始化
2.再依次执行父类->子类的实例初始化、构造方法

4+
Rhett Peng

软件工程大三在读学生,用个人网站记录学习动态

说点什么

avatar