对象的创建过程
1,虚拟机遇到new指令时,检查这个指令的参数能否在常量池找到一个类的符号引用,并检查这个类是否加载,解析,初始化。若没有,则执行类的初始化过程。
2,虚拟机为新生对象分配内存空间。对象的大小在类加载完后便可完全确定,为对象分配空间相当于把java堆中的确定大小的空间划分出来。当堆中的空闲空间与使用空间都连续,只需将分界点的指针向空闲区域挪移,该方式成为“指针碰撞”。当空闲空间不连续,虚拟机需维护一个列表记录,在列表找到足够的空间分配,称为“空闲列表”
3,分配空间后,虚拟机将该空间初始化为零(除了对象头)。虚拟机在对象头空间对对象进行必要的设置,如对象所属的类,对象的hash,元数据信息,年龄代等信息。
4,初始化操作,按程序员的设置将变量赋予初始值。
对象的创建过程(简单直白)
最新推荐文章于 2024-07-15 22:27:18 发布