Java对象创建过程

1.new

2.类加载检测

  虚拟机遇到new指令时,首先进行类加载检测:

    (1)检测new指令的参数是否能在常量池中定位类的符号引用

    (2)检测这个符号引用是否进行过类的加载解析和初始化,没有则先对该类进行加载。

3.对象内存分配

  创建一个对象所需要的内存在类加载完成时就能够确定,内存分配是指在堆中划分出一块和对象大小的对应内存出来。

4.值初始化

  jvm会初始化分配好的内存,将其设置为0值

5.设置对象头

  (1)markword 标记信息:存储对象自身运行时的数据:如hascode、gc年龄分代、锁标志、锁信息等;

  (2)klassword 类型指针:指向它对应的类元数据,VM用这个确定属于哪个类等实例;

6.执行<init>

  类的构造函数,对属性进行赋值。

posted @ 2022-06-20 17:34  重生之我是java程序员  阅读(48)  评论(0编辑  收藏  举报