1.new
2.类加载检测
虚拟机遇到new指令时,首先进行类加载检测:
(1)检测new指令的参数是否能在常量池中定位类的符号引用
(2)检测这个符号引用是否进行过类的加载解析和初始化,没有则先对该类进行加载。
3.对象内存分配
创建一个对象所需要的内存在类加载完成时就能够确定,内存分配是指在堆中划分出一块和对象大小的对应内存出来。
4.值初始化
jvm会初始化分配好的内存,将其设置为0值
5.设置对象头
(1)markword 标记信息:存储对象自身运行时的数据:如hascode、gc年龄分代、锁标志、锁信息等;
(2)klassword 类型指针:指向它对应的类元数据,VM用这个确定属于哪个类等实例;
6.执行
类的构造函数,对属性进行赋值。
Original: https://www.cnblogs.com/mzBlogs/p/16394055.html
Author: 重生之我是java程序员
Title: Java对象创建过程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607884/
转载文章受原作者版权保护。转载请注明原作者出处!