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

对象的内存布局

在Java虚拟机(HotSpot)中,对象在 Java 内存中的 存储布局 可分为三块:

  1. 对象头 存储区域
  2. 实例数据 存储区域
  3. 对齐填充 存储区域

对象头区域:

存储对象自身的运行时数据,如:哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳。

存储对象类型指针,即对象指向类元数据的指针,JVM可以确定这个对象属于哪个类的实例。

如果是数组,对象头中还有一块记录数组长度的数据。

实例数据区域:

  • 代码中定义的字段内容。

对齐填充区域:

  • 占位符。
  • 非必须。

说明:占位符起占位作用,因为对象的大小必须是8字节的整数倍,而因HotSpot VM的要求对象起始地址必须是8字节的整数倍,且对象头部分正好是8字节的倍数。因此,当对象实例数据部分没有对齐时(即对象的大小不是8字节的整数倍),就需要通过对齐填充来补全。

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

相关文章:

  • docker centos7离线安装ElasticSearch单机版
  • 【计算机网络】IP 协议
  • 刷题DAY38 | LeetCode 509-斐波那契数 70-爬楼梯 746-使用最小花费爬楼梯
  • 蓝桥杯-卡片换位
  • Unity 布局控制器Content Size Fitter
  • Python的面向对象、封装、继承、多态相关的定义,用法,意义
  • Elasticsearch 向量搜索
  • 2024蓝桥杯每日一题(背包)
  • Redis桌面客户端
  • 让Unity的协程变得简单
  • 2.9 Python缩进规则(包含快捷键)
  • 任务记录.
  • andv vue 实现多张图片上传
  • 使用JMeter+Grafana+Influxdb搭建可视化性能测试监控平台
  • django模板下,vue的使用(前后端不分离)
  • python笔记(7)List(列表)
  • java 抠取红色印章(透明背景)
  • CSS及javascript
  • LeetCode 1997.访问完所有房间的第一天:动态规划(DP)——4行主要代码(不需要什么前缀和)
  • BootsJS上新!一个库解决大部分难题!
  • 智慧公厕,让数据和技术更好服务社会生活
  • Spark基于DPU Snappy压缩算法的异构加速方案
  • 如何使用python链表
  • ADB的主要操作命令及详解
  • 傻瓜式启动关闭重启docker容器的脚本
  • R语言使用dietaryindex包计算NHANES数据多种营养指数(2)
  • Elasticsearch 索引模板、生命周期策略、节点角色
  • buy me a btc 使用数字货币进行打赏赞助
  • Solidity Uniswap V2 Router swapTokensForExactTokens
  • 网络安全渗透测试工具