1、对象的创建过程

加载-验证-准备-解析-初始化-申请内存-成员变量赋初始值-加载构造方法。
前半段是JVM系列(5)——类加载过程,申请内存可参考:JVM系列(3)——内存分配与回收策略
JVM系列(8)——对象的内存布局-LMLPHP

JVM系列(8)——对象的内存布局-LMLPHP

2、对象在内存中的存储布局

请参考:多线程与高并发(4)——对象头和锁升级
对象实例在堆内存中被分为三部分:对象头、实例数据、对齐填充。
对象头又包括:markWord,类型指针和数组长度(可选,数组类型时才有,和普通对象的区别)。
JVM系列(8)——对象的内存布局-LMLPHP
对象头包含如下:
JVM系列(8)——对象的内存布局-LMLPHP

3、对象怎么定位

直接指针或者句柄指针(间接指针)的方式。

4、对象怎么分配

参考:
JVM系列(1)——java内存区域
JVM系列(2)——垃圾回收
JVM系列(3)——内存分配与回收策略

07-20 10:13