当虚拟机遇到一条指令 new Object()时,指针
首先会去检查这个指令的参数是否在运行时常量池中能定位到这个类的符号引用,并检查这个符号引用表明的类是否已被加载,解析,初始化,若是没有,开始类加载。对象
类加载完成后,开始为对象分配内存。内存
拿到内存后,首选初始化为0,(变量默认初始化为0)虚拟机
而后虚拟机开始对对象头设置必要的属性,对象的hash码,GC分代年龄,指向锁的指针等数据。对象在内存中分配时是有三块区域的,对象头,实例数据,对齐填充。hash
而后将对象引用入栈,new指令结束。变量