一、对象的创建过程
二、对象的内部结构(内存分配)
1、对象头
- hashcode
- GC分代年龄
- 线程编号
- 锁编号
- 时间戳
- 引用计数
…
2、实例数据
存储所定义的各种类型字段内容,无论是从父类继承下来,还是在子类中定义的,都需要记录起来。
3、对齐填充
起着占位符的作用,实例数据起始地址必须是8字节的整数倍,(对像的大小必须是8字节的整数倍)。
三、对象的访问
通过栈上的reference引用数据来访问堆上的实例数据。
1、直接指针
reference引用存储是对象地址,直接指向对象的实例数据,同时一个存储一个指向对象类型数据的指针。
2、句柄
reference引用存储是句柄地址,句柄地址存储两个对象和类型数据两个指针,一个指向对象实例数据,一个指向对象类型数据。