创建一个对象的流程:
- 加载指定的字节码文件进内存
- 通过new在堆中开辟空间,分配首地址。
- 对对象的属性进行默认初始化。
- 调用与之对应的构造函数,构造函数压栈。
- 构造函数中执行隐式的super()语句,访问父类的构造函数。
- 对对象的属性进行显示初始化。
- 调用类中的构造代码块。
- 执行构造函数中自定义的初始化代码。
- 初始化完毕,将地址赋值给指定的引用。
package com.ybjt.test;
/**
* 测试对象的创建
* @author Administrator
*
*/
public class TestNewObject {
public static void main(String[] args) {
new Dem01();
}
}
class Dem01{
//成员变量
int a =10;
//静态成员变量
static int b = 100;
//构造函数
Dem01(){
System.out.println("构造函数");
}
//静态代码块
static {
System.out.println("静态代码块");
}
//构造代码块
{
System.out.println("构造代码块");
}
}