jvm之对象创建过程

2020-09-11 11:29:50 浏览数 (1)

常量池中定位类的符号引用

检查符号引用所代表的类是否已被加载,解析和初始化过 →

↓ ↓

分配内存(类加载完成后,内存需求确定) ← 加载

根据java堆是否规整(GC方法)选择分配方法

↙ ↘

指针碰撞 空闲列表

分配内存的并发保证(指针更新的原子性)

↙ ↘

CAS 失败重试 按照线程划分在不同的空间中进行TLAB -XX: UseTLAB -XX:-UseTLAB

内存空间初始化为0值,保证对象的实例字段可以不赋初值就可以使用。

设置对象头信息(Object Header):引用指针,元数据,hash值,GC分代年龄,锁相关

执行对象<init>方法

0 人点赞