工作生活

对象是怎么被创建的

2019-07-03  本文已影响0人  fulj

第一步 new指令

是否能在常量池里定位到这个类的符号引用,并检查是否被加载,解析,初始化。如果没有必须先加载

第二步 分配内存

不同的垃圾收集器使用不同方式分配内存

分配方式

第三步 虚拟机初始化对象

  • 这一步将分配到的内存初始化为零值(不包括对象头),如果使用TLAB,这一工作也可以提前至TLAB分配时进行。
  • 设置对象头的类型指针、对象hash码、GC分代年龄、是否偏向锁等

第四步 程序员赋值

也就是执行代码中的构造方法<init>

上一篇 下一篇

猜你喜欢

热点阅读