Java对象布局(JOL)具体实现步骤详解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计652个文字,预计阅读时间需要3分钟。
Java对象布局(JOL)描述了对象在堆内存中的布局。以下是对JOL的简化描述:
1. 对象标识和元数据:每个对象都有一个固定长度的标记字段(如`markword`),占8字节,用于存储对象的身份哈希码、分代年龄、锁信息等。
2.类信息:对象中还包含指向其类信息的指针,即`klass`指针。
例如:
- `markword`:固定长度的字段,包含对象的身份哈希码、分代年龄、锁信息等。- `klass`:指向对象所属类的指针。更多详情请参考:[Java对象布局(JOL)](https://www.jb51.net/article/183984.htm)。
java对象布局JOL(java object layout),描述对象在堆内存的布局。如下图:
1.markword 固定长度8byte,描述对象的identityhashcode,分代年龄,锁信息等(www.jb51.net/article/183984.htm);
2.klasspoint 固定长度4byte, 指定该对象的class类对象;
3.基本变量:用于存放java八种基本类型成员变量,以4byte步长进行补齐,使用内存重排序优化空间;
4.引用变量:存放类的引用变量句柄,如String,Object;每个句柄大小在32位虚拟机上是4byte,64位虚拟机上是8byte,但java8开始默认开启UseCompressedOops压缩参数,故也是4byte, kasspoint也是如此;
5.补齐:对象大小必须是8byte的整数倍,用来补齐字节数。
本文共计652个文字,预计阅读时间需要3分钟。
Java对象布局(JOL)描述了对象在堆内存中的布局。以下是对JOL的简化描述:
1. 对象标识和元数据:每个对象都有一个固定长度的标记字段(如`markword`),占8字节,用于存储对象的身份哈希码、分代年龄、锁信息等。
2.类信息:对象中还包含指向其类信息的指针,即`klass`指针。
例如:
- `markword`:固定长度的字段,包含对象的身份哈希码、分代年龄、锁信息等。- `klass`:指向对象所属类的指针。更多详情请参考:[Java对象布局(JOL)](https://www.jb51.net/article/183984.htm)。
java对象布局JOL(java object layout),描述对象在堆内存的布局。如下图:
1.markword 固定长度8byte,描述对象的identityhashcode,分代年龄,锁信息等(www.jb51.net/article/183984.htm);
2.klasspoint 固定长度4byte, 指定该对象的class类对象;
3.基本变量:用于存放java八种基本类型成员变量,以4byte步长进行补齐,使用内存重排序优化空间;
4.引用变量:存放类的引用变量句柄,如String,Object;每个句柄大小在32位虚拟机上是4byte,64位虚拟机上是8byte,但java8开始默认开启UseCompressedOops压缩参数,故也是4byte, kasspoint也是如此;
5.补齐:对象大小必须是8byte的整数倍,用来补齐字节数。

