美团面试:
jvm的对象头是如何存储的,对象头中有哪些信息

对象头里面的东西:运行时元数据,类型指针:Hashcode,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳。如果是数组的化还需要记录长度

对象的内存分布_元数据

就比如下面的代码来看,内存分布情况:

对象的内存分布_数据_02

对象的内存分布_数据_03
由于是static的main方法所有局部变量表没有this,如果是非静态方法的话第一个放this。
其次:
栈帧:局部变量表,操作数栈,动态链接,方法返回值地址,附加信息
cut对应的是堆空间的实例化对象。然后实例化对象的空间如图所示,有对象头,实例数据以及对其填充。
而对象头里面的数据为:运行时元数据,类型指针:Hashcode,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳。和典型指针。