java 对象大小计算

news2024/11/16 5:30:02

说明:

对于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 byte
   kclass pointer: 4byte
instance data:
   name: 4byte
   age: 2byte
填充数据:
	6byte
总共占用: 8 +4 + 4 +2 +6 =24byte

对象结构:

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1271064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:docker镜像的创建(5)

1.基于已有镜像创建 步骤: 1.将原始镜像加入容器并运行 2.在原始镜像中部署各种服务 3.退出容器 4.使用下面命令将容器生成新的镜像 现在我们在这个容器里做了一些配置,我们要把他做成自己镜像 docker commit -m "centos7_123" -a "tarr…

ArkTS-DevEco Studio打开预览器报错

下载官网Codelab案例,打开预览器报错 Failed to start the service process. Make sure the path specified by nodejs.dir in the local.properties file is correct. 解决方案 在编辑器设置中找到node安装路径 将" local.properties"文件中的"nod…

老泮识趣:难忘何家桥

回忆何家桥往事,写了篇《消失的何家桥》,没想到点击率如此高,出乎意料。网友的共鸣可见,城市发展的今天,乡情是个美好的存在,清贫、朴实,丝毫不影响美感。由于大家的鼓励,触动了我再…

电力变压器行业分析:预计2029年将达到84亿元

随着中国“节能降耗”政策的不断深入,国家鼓励发展节能型、低噪音、智能化的配电变压器产品。在网运行的部分高能耗配电变压器已不符合行业发展趋势,面临着技术升级、更新换代的需求,未来将逐步被节能、节材、环保、低噪音的变压器所取代。 电…

PyBullet安装与学习

PyBullet 支持加载 URDF、SDF、MJCF 等多种机器人描述文件,并提供正/逆向运动学、正/逆向动力学、碰撞检测、射线相交查询等功能。 pip install pybullet 安装后会在 Python 环境的 lib/site-packages 中出现以下文件夹: pybullet_data:存放…

VERAS:AI驱动的Revit可视化渲染插件

Veras 是一款基于生成式AI 的可视化工具,可以使用自然语言生成3D渲染效果,兼容Revit、Rhino 和 SketchUp。Veras for Revit工具使用 Revit 模型内部的 3D 视图。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编…

Spine深入学习 —— 换装

Spine深入学习————换装 数据对象和实例对象的关系与区别 数据对象是无状态的,可在任意数量的骨架实例间共用。有对应实例数据的数据对象类名称以“Data”结尾,没有对应实例数据的数据对象则没有后缀,如附件、皮肤及动画。 实例对象有许…

【FMC140】 基于VITA57.4标准的双通道5.2GSPS(或单通道10.4GSPS)射频采样FMC+子卡模块

板卡概述 FMC140是一款具有缓冲模拟输入的低功耗、12位、双通道(5.2GSPS/通道)、单通道10.4GSPS、射频采样ADC模块,该板卡为FMC标准,符合VITA57.1规范,该模块可以作为一个理想的IO单元耦合至FPGA前端,8通道…

【嵌入式Linux开发一路清障-连载04】虚拟机VirtualBox7.0安装Ubuntu22.04后挂载Windows平台共享文件夹

虚拟机安装Ubuntu22.04后挂载Windows平台共享文件夹 障碍07-虚拟机VirtualBox7.0完装完Ubuntu22.04后,无法成功挂载Windows平台中共享文件夹,无法访问电脑中的各类重要文件,我该怎么办?一、问题的模样:VirtualBox7.0设…

Python异常处理:try...except语句

Python是一门非常灵活且易于学习的编程语言,在日常开发中被广泛应用。然而,由于各种原因,我们的代码可能会出现异常情况,例如输入错误、文件读写异常等等。Python异常处理是Python中重要的一部分,为了保证程序的稳定性…

IPv6地址介绍

当前我国的网络正在快速向IPv6升级中,从网络基础设施如运营商骨干网、城域网,到互联网服务商如各类云服务,以及各类终端设备厂商如手机、电脑、路由器、交换机等。 一、网络IP地址 IP地址是英文Internet Protocol的缩写,是网络之…

Fiddler 抓包高级进阶

Fiddler 抓包高级进阶 安装直接下载我附件提供的,中文版的,可以直接使用。如果不能使用就安装.NET 框架。 HTTPS配置工具》》选项: https 都配置上。 配置HTTS证书,然后动作》》 Trust Root Certificate 。 一路确认或者 是,就行了。

【C++】程序题( STL标准模板库)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

dbCAN碳水化合物酶基因数据库及run_dbCAN4工具安装配置及使用

dbCAN(碳水化合物酶基因数据库)是一个专门用于在基因组中预测碳水化合物酶基因的在线工具。它基于隐马尔可夫模型(HMM)和BLAST搜索,能够在蛋白质序列中识别和注释不同类型的碳水化合物酶基因,包括纤维素酶、…

Flutter App混淆加固、保护与优化原理

目录 引言 一、混淆原理 二、实现混淆 2.1、混淆Dart代码 2.2、混淆Android原生代码 三、优化应用程序包体积 3.1、移除未使用的资源 3.2、压缩图片资源 四、提高反编译难度 4.1、混淆字符串 代码加固 五、常见问题与解决方案 六、总结 引言 在移动应用程序开发中&…

【Vue】【uni-app】实现工单列表项详情页面

这次主要实现的是一个工单详情页面 从工单列表项中点击详情 跳转到工单详情页面&#xff0c;这个详情页面就是这次我们要实现的页面&#xff0c;并可以通过点击这个关闭按钮返回到工单列表页面 首先是在我们原有的工单列表页面的按钮增加一个点击跳转 <button size"m…

支付宝蚂蚁庄园2023年12月1日小课堂问题今天正确答案是什么?通常来说榴莲的气味越浓郁说明?为什么冬天容易手脚冰凉?

问题&#xff1a;通常来说&#xff0c;榴莲的气味越浓郁说明&#xff1f; 选项&#xff1a;A、越成熟 B、越生涩 答案&#xff1a;越成熟 解析&#xff1a;榴莲都会有独特的香味,一般情况下,香味越浓郁就说明榴莲的成熟度越高,它的果肉会越香甜,吃起来会更美味。 问题&#…

【React-Router】导航传参

1. searchParams 传参 // /page/Login/index.js import { Link, useNavigate } from react-router-dom const Login () > {const navigate useNavigate()return <div>登录页<button onClick{() > navigate(/article?id91&namejk)}>searchParams 传参…

11.22 作业 select实现TCP并发客户端/poll实现TCP并发服务器

#include <myhead.h> #define SERIP "192.168.115.162" #define SERPORT 8888 #define CLIIP "192.168.115.162" #define CLIPORT 6666 int main(int argc, const char *argv[]) {//创建客户端用于通信的套接字int cfd socket(AF_INET,SOCK_STREAM,…

数据通信——OSPF路由控制实验

实验需求 我们采用OSPF完成路由的控制&#xff0c;首先连接如下拓扑&#xff1a; 所有设备均属于area 0&#xff0c;网段及环回口配置如上图所示。 实验目的&#xff1a;R4和R1的环回口通信路径为R4——R2——R1若R2出现问题&#xff0c;自动切换到R3路径。 实验配置 1&am…