首页 > 系统相关 >一个对象的内存布局是怎么样的?

一个对象的内存布局是怎么样的?

时间:2023-03-30 23:55:50浏览次数:38  
标签:Java 字节 标记 对象 占用 布局 怎么样 内存 Class

 

 

  • 「1.对象头」: 对象头又分为 「MarkWord」 和 「Class Pointer」 两部分。

    • 「MarkWord」:包含一系列的标记位,比如轻量级锁的标记位,偏向锁标记位,gc记录信息等等。

    • 「ClassPointer」:用来指向对象对应的 Class 对象(其对应的元数据对象)的内存地址。在 32 位系统占 4 字节,在 64 位系统中占 8 字节。

  • 「2.Length」:只在数组对象中存在,用来记录数组的长度,占用 4 字节

  • 「3.Instance data」: 对象实际数据,对象实际数据包括了对象的所有成员变量,其大小由各个成员变量的大小决定。(这里不包括静态成员变量,因为其是在方法区维护的)

  • 「4.Padding」:Java 对象占用空间是 8 字节对齐的,即所有 Java 对象占用 bytes 数必须是 8 的倍数,是因为当我们从磁盘中取一个数据时,不会说我想取一个字节就是一个字节,都是按照一块儿一块儿来取的,这一块大小是 8 个字节,所以为了完整,padding 的作用就是补充字节,「保证对象是 8 字节的整数倍」

 

标签:Java,字节,标记,对象,占用,布局,怎么样,内存,Class
From: https://www.cnblogs.com/89564f/p/17274838.html

相关文章

  • android内存统计
    由于linux内核和nativeservice使用的内存在settings中统计不出来,因此对于分析内存相关问题时,使用procrank命令则能比较清晰的获取每个进程占用的内存资源$adbshellprocrankPIDVssRssPssUsscmdline15949668K39664K19857K17016Ksystem_server23629688K29676K1......
  • 相对布局的相关属性RalativeLayout
    第一类:属性值为true或false   android:layout_centerHrizontal             水平居中   android:layout_centerVertical              垂直居中   android:layout_centerInParent              相对于父元素完全居中......
  • VTKImageData 手动释放内存资源
    一.VtkSmartPointer 使用智能指针创建对象,则无需手动调用Delete()方法减少引用计数,因为引用计数的增加与减少都是由智能指针自动完成的。VTK实现了便利的自动内存管理的概念,使用引用计数。与其他智能指针不同之处在于引用计数保留在VTK对象本身中,而不是智能指针类中。这样的好......
  • 如何限制进程内存:cgroup
    前两天刚知道cgroup,但是没用过,我就想做个简单的模拟OOM,网上搜了两天,发现一个比一个说的杂乱无章。 最后问的chatgpt:如何限制一个进程的内存在Linux系统中,可以使用cgroups来限制一个进程的内存。cgroups是一种内核机制,用于控制进程组的资源使用(CPU、内存、IO、网络等)。下面......
  • 内存容量,末地址,首地址运算方法
    内存容量=末地址-首地址+1B13FF-A1000+1=10400换算下:10400=4*(16^2)+1*(16^4)=2^10+2^16=2^10*(1+2^6)=2^10*65内存是按字节编址的。记住几个常用的2的10次方为1024即1KB故答......
  • 【性能优化】Linux内存调试工具-pmap
    简介pmap是一款对进程内存占用率进行分析的Linux环境调试工具,他提供了进程的内存映射,可以用于显示一个或多个进程的内存状态。pmap工具使用说明Usage:pmap[options]P......
  • 内存模型
    JMM(JavaMemoryModel,Java内存模型)JMM是一个抽象概念,由于CPU多核多级缓存、为了优化代码会发生指令重排的原因,JMM为了屏蔽细节,定义了一套规范,保证最终的并发安全。......
  • 开源内存数据库 DragonflyDB 1.0 正式 GA,可替代 Redis
    DragonflyDB是一个现代化的开源内存数据库,兼容Redis和MemcachedAPI,迁移时无需修改任何代码,可作为两者的替代方案。与传统的内存数据存储相比,DragonflyDB提供了更......
  • css列数自适应的grid布局
    近期做项目,遇到了一点样式上的问题,理论上通过直接改/嵌套一层来解决比较容易,但实际上,数据结构没我想象中的简单具体例子如下:demo期望效果: ......
  • linux中关于内存、缓冲区、缓存
     ......