当前位置: 首页 > news >正文

java 对象大小计算

说明:

对于64位机:一个对象由三部分组成

  1. 对象头(object header)
    • mark word :64bit
    • kclass pointer :32bit(默认使用指针压缩),如果取消指针压缩( XX:-UseCompressedOops),则占用64bit
    • 数组长度:数组对象才有,占用32bit
  2. 实例数据(instance data)。 这个与数据类型有关 :
    • byte:1*8 = 8bit
    • short:2*8 =16bit
    • int :4*8 = 32bit
    • long:8*8 = 64bit
    • reference:4*8 = 32bit (不使用指针压缩时,引用类型占用8个字节64bit)
  3. 填充数据。
    让对象总大小是8的倍数。

计算案例:

class Person{String name;short age;
}
//计算规则
object header:markword: 8 bytekclass pointer: 4byte
instance data:name: 4byteage: 2byte
填充数据:6byte
总共占用: 8 +4 + 4 +2 +6 =24byte

对象结构:

请添加图片描述

http://www.lryc.cn/news/249908.html

相关文章:

  • 12个国外电子元器件基本参数(下)
  • Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
  • SSH基础和高级用法
  • 算法通关第十三关-青铜挑战数学基础问题
  • 如何使用 Freepik 的 Pikaso 工具来画图
  • 一个没正常处理tcp对端关闭的bug
  • 什么是JDK
  • 积分表二(高等数学同济版中所有的积分公式)
  • Golang数据类型(数字型)
  • 【JVM系列】- 穿插·对象的实例化与直接内存
  • 【C++干货铺】继承 | 多继承 | 虚继承
  • 【ARM CoreLink 系列 8.1 -- SMMU 详细介绍-STE Entry 详细介绍 1】
  • 高防CDN与WAF防火墙的协同防护:构筑网络安全堡垒
  • golang strings包的基本操作
  • 高效解决在本地打开可视化服务器端的tensorboard
  • Spring Boot Actuator 2.2.5 基本使用
  • 字符串相似度匹配算法_莱茵斯坦距离算法
  • 【EI会议征稿】第九届电气、电子和计算机工程研究国际学术研讨会 (ISAEECE 2024)
  • Maven Helper插件——实现一键Maven依赖冲突问题
  • 理解位运算的规则
  • Android Bitmap 使用Vukan、RenderEffect、GLSL实现模糊
  • Vue H5页面长按保存为图片
  • 【Web】UUCTF 2022 新生赛 个人复现
  • 设置python下载包代理
  • nginx 配置前端项目添加https
  • 人群计数CSRNet的pytorch实现
  • 【HTTP协议】简述HTTP协议的概念和特点
  • 经典神经网络——AlexNet模型论文详解及代码复现
  • flutter开发实战-轮播Swiper更改Custom_layout样式中Widget层级
  • 【Flutter】graphic图表实现自定义tooltip