JVM虚拟机:Java对象的头信息有什么?

本文重点

在前面的课程中,我们学习了对象头,其中对象头包含Mark Word和class pointer,当然数组还会有一个数组长度。本文主要分析Mark Work中包含的信息。

Mark Word

以下两张图是一个意思:

JVM虚拟机:Java对象的头信息有什么?_第1张图片

32位

JVM虚拟机:Java对象的头信息有什么?_第2张图片

32位

JVM虚拟机:Java对象的头信息有什么?_第3张图片

64位

以上就是Mark Word会存储的信息,这个意思是说Java对象在不同状态下其对象头都会有不同的表现形式,主要表现为3种状态:无锁状态、加锁状态(偏向锁、轻量级锁、重量级锁)、gc标记状态。(关于加锁状态的演化和含义,之后的课程会进行详细的介绍,大概在线程的时候讲解

比如在无锁的情况下,它的锁标志位为01,然后是否是偏向锁为0,然后4bit存储分代年龄(0到15,所以最大为15),然后25bit存储对象的hashCode(identity_hashcode,当对象使用HashCo

你可能感兴趣的:(深入了解JVM虚拟机,jvm,java,开发语言,虚拟机,面向对象)