对象实例由对象头、实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度;了解了对象的总体结构,接下来深入地了解对象头的三个部分。该标记的值不同,整个Mark Word表示的含义不同。为1时表示对象启用偏向锁,为0时表示对象没有偏向锁。lock和biased_lock共同表示对象处于什么锁状态。age:4位的Java对象年龄。默认情况下,并行GC的年龄阈值为15,并发GC的年龄阈值为6。这一部分用于存储对象的类型指针,该指针指向它的类元数据,JVM通过这个指针确定对象是哪个类的实例。如果应用的对象过多,使用64位的指针将浪费大量内存,统计而言,64位的JVM将会比32位的JVM多耗费50%的内存。64位JVM如果开启+UseCompressedOops选项,该区域长度也将由64位压缩至32位。
暂无评论