java创建对象一共分为六个步骤:
1.判断对象对应的类是否加载、链接(链接又分为校验、准备、解析)、初始化。
2.为对象分配内存:
(1)如果内存规整——指针碰撞(假设java堆中内存是绝对规整的,所有用过的内存放一边,未使用过的放一边,中间有一个指针作为临界点,如果新创建了一个对象则是把指针往未分配的内存挪动与对象内存大小相同距离,这个称为指针碰撞。)。
(2)如果内存不规整——虚拟机维护一个列表、然后通过空闲列表分配内存。
3.处理并发安全问题。
4.初始化分配到的空间——给所有属性设置默认值。
5.设置对象的对象头。
6.执行init方法进行初始化。