Java创建对象的过程

1.类加载检查
  虚拟机遇到一条new指令时执行类加载检查

2.分配内存

  在类加载检查通过后,为新生对象分配内存

  分配内存两种方式:2.1.指针碰撞:用过的内存内存和没用过的内存分开,中间有一个分界指针,分配内存时分界指针向没用过的内存一方移动

              2.2.空闲列表:虚拟机维护一个列表,列表记录哪些内存是可用的,分配时找一块内存给对象实例,更新列表记录

  分配内存时线程安全:CAS+失败重试;TLAB

3.初始化零值

  在内存分配完成后,虚拟机将分配到的内存空间初始化为零值

4.设置对象头

  在初始化零值后,虚拟机对对象进行初始化设置;例如该对象属于哪个类的实例,必要信息存放在对象头中

5.执行init方法

  以上所有工作完成后,执行init方法,对象创建完成

 

posted @ 2020-03-30 10:12  leviH  阅读(347)  评论(0)    收藏  举报