java对象
java对象的占用的内存分为对象头和实例数据。
对象头的一部分用于存储对象自身运行时的运行数据,比如hashcode,gc分代年龄,锁状态标志,线程持有的锁,偏向线程id,偏向时间戳。这些被成为markword
另一部分时类型指针(klass),指向他的类的元数据。如果对象是一个java数组,用于记录数组的长度。因为java虚拟机无法通过类型元数据信息确定数组的大小。
java对象的占用的内存分为对象头和实例数据。
对象头的一部分用于存储对象自身运行时的运行数据,比如hashcode,gc分代年龄,锁状态标志,线程持有的锁,偏向线程id,偏向时间戳。这些被成为markword
另一部分时类型指针(klass),指向他的类的元数据。如果对象是一个java数组,用于记录数组的长度。因为java虚拟机无法通过类型元数据信息确定数组的大小。