java对象大小

java对象包括对小偷,实例数据和对齐填充

任何一个对象都有对象头,对象头在32位系统上占用,64位系统上占用16bytes

对象头的结构

| mark word | klass pointer | array size (opt) | padding

空对象的不包含任何成员变量,其大小即对象头大小:

在 32 位 JVM 上,占用 8 字节;

在未开启UseCompressedOops的 64 位 JVM 上,16 字节。(感谢评论区的@SingleCool纠正)

在开启UseCompressedOops的 64 位 JVM 上,12 + 4 = 16;

数组也是对象,故有对象的头部,另外数组还有一个记录数组长度的 int 类型,随后是每一个数组的元素:基本数据类型或者引用。8 字节对齐

https://www.liaohuqiu.net/cn/posts/caculate-object-size-in-java/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容