JVM零基础到高级实战之Java程序员不可不知的对象结构

JVM零基础到高级实战之Java程序员不可不知的对象结构

JVM零基础到高级实战之Java程序员不可不知的对象结构


文章目录

  • JVM零基础到高级实战之Java程序员不可不知的对象结构
  • 前言
  • JAVA对象内存布局
  • 总结


前言

JVM零基础到高级实战之Java程序员不可不知的对象结构


JAVA对象内存布局

JVM零基础到高级实战之Java程序员不可不知的对象结构_第1张图片

  • 对象头用于存储对象的元数据信息
    • Mark Word 部分数据的长度在32位和64位虚拟机(未开启压缩指针)中分别为32bit和64bit,存储对象自身的运行时数据如哈希值等。Mark Word一般被设计为非固定的数据结构,以便存储更多的数据信息和复用自己的存储空间。
    • 类型指针 指向它的类元数据的指针,用于判断对象属于哪个类的实例。
  • 实例数据
    • 实例数据存储的是真正有效数据,如各种字段内容,各字段的分配策略为longs/doubles、ints、shorts/chars、bytes/boolean、oops(ordinary object pointers),相同宽度的字段总是被分配到一起,便于之后取数据。父类定义的变量会出现在子类定义的变量的前面。
  • 对齐填充
    • 对齐填充部分仅仅起到占位符的作用,并非必须

总结

本文介绍了JVM零基础到高级实战之Java程序员不可不知的对象结构的全部内容,后续我会不断更新,喜欢的请点击关注,JVM系列将会持续更新下去。

你可能感兴趣的:(jvm,java,开发语言)