
1.对象的内存布局
1.1 对象头(Header)
包括两类信息
用于存储对象的运行时数据(Mark Word)
类型指针(对象指向它的类型原数据的指针)
1.2 实例数据(Instance Data)
字段内容记录
存储顺序影响因素
对齐填充(Padding)
不是必然存在的,是因为对象大小是8字节的整数倍
2.对象的访问定位
2.1 通过栈上的 reference数据来操作堆上的具体对象
2.2 访问方式
2.2.1 使用句柄
Java堆中有句柄池和实例池
优势:栈中的reference存储的是稳定的句柄地址
2.2.2 直接指针
栈中的reference直接存储的是对象地址
优势:速度更快(HotSpot使用此种方式)
网友评论