如下内容为个人总结,如有错误,欢迎评论区指正;
-
对象的布局可以分为三个部分:
-
对象头
-
如Hash码、对象分代年龄、锁状态、线程持有的锁、偏向线程ID、偏向时间等
-
另一部分是类型指针,但不一定所有对象都可能有类型指针,也可能是句柄;
-
另外数组对象还需要存储数组长度
-
-
实例数据
-
存储的是对象的有效信息,代码中定义的字段内容
-
-
对齐填充
-
虚拟机规定,对象起始地址必须是8字节的整数倍
-
-
参考《深入理解Java虚拟机》
如下内容为个人总结,如有错误,欢迎评论区指正;
对象的布局可以分为三个部分:
对象头
如Hash码、对象分代年龄、锁状态、线程持有的锁、偏向线程ID、偏向时间等
另一部分是类型指针,但不一定所有对象都可能有类型指针,也可能是句柄;
另外数组对象还需要存储数组长度
实例数据
存储的是对象的有效信息,代码中定义的字段内容
对齐填充
虚拟机规定,对象起始地址必须是8字节的整数倍
参考《深入理解Java虚拟机》