从一个实例看java,new一个对象时的初始化顺序

例子如下:

package com.zhiru;

class ADemo {
	private static int id;
	static {
		id = 0;
		System.out.println("id的值为" + id);
	}
	{
		System.out.println("进入实例初始化子句...");
	}

	ADemo() {
		System.out.println("进入ADemo的构造函数--->" + ADemo.class);
	}
}

public class ClassDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new ADemo();
	}

}

输出:

id的值为0
进入实例初始化子句...
进入ADemo的构造函数--->class com.zhiru.ADemo

从输出可以看出java在new一个对象时的初始化顺序是这样的:

首先初始化静态语句块

然后是实例初始化子句

最后是类的构造器。

你可能感兴趣的:(Java)