背景看h2源码的过程中,由于每个Page需要持久化,便使用一个字段存放写入文件时占用的字节大小,而我对java对象占用字节大小不甚清晰,便查找资料记录如下: java对象在堆中如何存放java对象在堆中分为三个部分,分别是 对象头(Header),实例数据(Instance Data)和对齐填充(Padding) 对象头分为三个字段:
存储了Java对象hash、GC年龄、锁标记、class指针、数组长度等信息 实例数据当前对象中的实例字段。由基本数据类型和引用类型组成的。
对象填充VM要求对象大小须是8的整体数,该部分是为了让整体对象在内存中的地址空间大小达到8的整数倍而额外占用的字节数。 压缩指针
为什么用压缩指针?
压缩指针原理
信息是否被压缩?哪些信息会被压缩?
哪些信息不会被压缩?
展望
总结
更多知识请戳 java开发实习工程师 |
对象占用多少内存?
最新推荐文章于 2024-02-20 11:38:19 发布