Java对象内存结构

对象内存结构分为三部分:

  • 对象头
    hash码,对象所属的年代,对象锁,锁状态标志,偏向锁(线程)ID,偏向时间,数组长度(数组对象)等
  • 对象实际数据
    即创建对象时,对象中成员变量,方法等
  • 对齐填充
    保证对象的大小是8字节的整数倍
    Java对象内存结构
    MataData元数据指针——指向当前对象的Class对象
    HotSpot虚拟机对象头MarkWord 32 位
    Java对象内存结构
    Java对象内存结构
    可以在openJDK源码中markOop.hpp文件中会有32位、64位系统中对象头的详细说明