对象内存结构

计算机软件开发 2024-9-17 08:10:17 102 0 来自 中国
存储结构



  • markword
    对象头 8字节。标识着头对象的状态,被接纳多少次
  • class pointer
    -XX:+UseCompressedClassPointers 为4字节,不开启为8字节
    T t = new T() t内里的class pointer指向t.class
.class文件被ClassLoader加载到内存空间的时间会为每个.class天生一个对象
通常来说一个.class文件只会被一个ClassLoader加载


  • instance data
    成员变量
    -XX:+UseCompressedOops 为4字节,不开启为8字节
    Ordinary Object Pointer 引用类型
  • padding
    8的倍数。数据是一块一块读取的,以是必要对齐。
JVM常用参数



64位体系指针默认是64bit
工具:JOL = Java Object Layout
Object o = new Object();System.out.println(ClassLayout.parseIntance(o).toPrintable());
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2025-2-6 14:06, Processed in 0.163733 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表