java创建对象步骤

1. 定位, 虚拟机遇到new指令,检查类在常量池中是否对应符号引用

2. 判断这个类是否已加载,解析和初始化

3. 为新生对象在java堆中分配内存空间

指针碰撞:分配内存空间包括开辟一块内存和移动指针,非原子步骤可能出现并发问题,java虚拟机采用CAS配上失败重试的方式保证更新操作的原子性

空闲列表:分配内存空间包括开辟一块内存和修改空闲列表,非原子步骤可能出现并发问题,java虚拟 机采用CAS配上失败重试的方式保证更新操作的原子性

4. 将分配到的内存空间初始化为0值,如成员变量初始化, int为0, 字符串为“”

5. 设置对象头相关数据,GC分代年龄,对象的哈希码hashCode,元数据信息

6. 执行对象方法,如静态语句块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值