Java对象创建的过程
Java中对象的创建就是在堆上分配内存空间的过程,此处说的对象创建仅限于new关键字创建的普通Java对象,不包括数组对象的创建
对象的创建大概分为以下几步:
1:检查类是否已经被加载;
2:为对象分配内存空间;
3:为分配的内存空间初始化零值(为对象字段设置零值);
4:对对象进行其他设置(设置对象头);
5:执行构造方法。
流程:
1.当虚拟机执行到new 关键字时,首先会去运行时常量池中查找该引用所指向的类有没有被虚拟机加载,如果没有被加载,那么会进行类的加载过程,如果已经被加载,那么进行下一步。
2.当类元信息被加载之后,我们就可以从常量池找到对应的类元信息,通过类元信息来确定类型和后面需要申请的内存大小。
3.对象的内存分配完成后,还需要将对象的内存空间都初始化为零值,这样能保证对象即使没有赋初值,也可以直接使用。(分配完内存后,需要对对象的字段进行零值初始化,对象头除外,零值初始化意思就是对对象的字段赋0值,或者null值,这也就解释了为什么这些字段在不需要