JVM-对象实例化过程(4)

390 阅读1分钟

创建对象的方式

  1. new
  2. Class.newInstance
  3. clone
  4. 反序列化
  5. 第三方库

创建对象的步骤

  1. 判断对象对应类是否加载、链接、初始化
  2. 为对象分配内存
    • 内存规整:指针碰撞
    • 内存不规整:需要维护空闲列表
  3. 处理并发安全问题
    • 采用CAS保证更新的原子性
    • 每个线程预先分配一块TLAB
  4. 初始化分配到的空间
  5. 设置对象头
  6. 执行init方法初始化

代码示例

public class Account {
}

class Consumer {
    int id = 10010;
    String name;
    Account account;

    {
        name = "ConsumerName";
    }

    public void createAccount() {
        account = new Account();
    }
}
public class ConsumerTest {
    public static void main(String[] args) {
        Consumer consumer = new Consumer();
    }
}

代码示例图

04.对象创建实例的过程.jpg