对象创建过程
1,加载指定类。
2,将静态变量默认初始化,显示初始化。
3,静态代码块初始化。
4,new在堆内存中开辟空间,明确首地址值。
5,对象中的成员变量进行默认初始化。
6,调用对应的构造函数。
6.1 super()调用父类的构造函数。
6.2 成员变量的显示初始化。
6.3 构造代码块初始化。
6.4 构造函数自定义内容的初始化。
//对象的初始化过程。
class Demo
{
static int x = 1;
int y = 1;
static
{
System.out.println("static code...x = " + x);
}
{
System.out.println("cons code ...y = " + y);
}
Demo()
{
System.out.println("cons function ...y = " + y);
}
}
class CreateObjectTest
{
public static void main(String[] args)
{
/*
1,加载Demo.class文件进方法区,并进行空间分配。
2,如果有静态变量,先默认初始化,显示初始化。
3,如果有静态代码块,要执行,仅一次。
4,通过new在堆内存中开辟空间,并明确首地址。
5,对对象中的属性进行默认初始化。
6,调用对应的构造函数进行初始化。
7,构造函数内部。
7.1 调用父类构造函数super();
7.2 成员变量的显示初始化。
7.3 构造代码块初始化。
7.4 构造函数内容自定义内容初始化。
8,对象初始化完毕后,将地址赋值给d引用变量。
*/
Demo d = new Demo();
System.out.println("over");
}
}
运行结果: