1、判断对象的类是否加载、链接、初始化
2、为对象分配内存:如果内存规整采用指针碰撞的方式,不规整采用空闲列表分配
3、处理并发安全问题:
(1)采用CAS配上失败重试保证更新的原子性
(2)每个线程预先分配一块TLAB
4、初始化分配到的空间---所有属性设置默认值,保证对象实例字段在不赋值时可以直接使用
5、设置对象头
6、执行init()方法进行初始化
属性的显示初始化、代码块中初始化、构造器中初始化
(1)采用CAS配上失败重试保证更新的原子性
(2)每个线程预先分配一块TLAB
4、初始化分配到的空间---所有属性设置默认值,保证对象实例字段在不赋值时可以直接使用
属性的显示初始化、代码块中初始化、构造器中初始化