创建对象的过程,属于类的主动使用,在加载、连接类完毕后,还会触发类的初始化过程
2、分配内存
在内存中分配对象所需的内存空间。具体的内存分配方式有很多种,包括堆上的对象分配、栈上的对象分配等,在主流的Java虚拟机中,大部分对象的内存分配发生在堆上
3、初始化零值
内存分配后,JVM将分配给对象的内存空间初始化为零值。这确保了对象的字段不会有Java语言不允许的未定义状态
4、设置对象头
JVM设置对象头信息,包括类的元数据信息、对象的哈希码、对象的GC分代年龄等。
5、执行构造方法
最后,JVM调用构造方法,根据程序员的意图进行初始化。这包括初始化声明的字段和执行构造方法中的所有语句。在此过程中,可能会调用父类的构造方法,以确保整个继承层次结构中的每个类都得到正确的初始化。