Jvm对象的创建

  Jvm遇到new指令创建对象主要分为以下几步:

1. 定位到常量池中对应类的符号引用,检查这个符号引用是否已被加载、解析和初始化。

2.分配内存,主要有指针碰撞和空闲列表两种方式;

  为保证并发情况下的线程安全,主要有两种方案:

  (1) cas

  (2) 使用本地线程分配缓冲(TLAB), 通过-XX:+/-UseTLAB设定

3.初始化为0,不包括对象头

4.进行一系列设置,比如这个对象是哪个类的实例、如何才能找到类的元数据、对象的哈希码、对象的GC分代年龄等信息。

5:调用<init>方法,按照代码的意愿进行初始化。

 

posted @ 2018-09-08 22:06  zq216991  阅读(570)  评论(0编辑  收藏  举报