对象的创建过程(简单直白)

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值