[Java] ¿El encabezado del objeto Java es realmente de 32 bits?

Inserte la descripción de la imagen aquí

1. Información general

HotSpotEn una máquina virtual, el diseño de los objetos almacenados en la memoria se puede dividir en tres áreas:

对象头(Header)
实例数据(Instance Data)
对齐填充(Padding)。 

是真的吗?假的! 假的!!! 但是网上都是这么说的

En realidad le mostraré: [Java] Cómo verificar el diseño de la memoria de un objeto en Java

puede ser visto如果对象正好是8的倍数,那么就不是3部分,而是2部分,没有对象填充,否则就是有的.

HotSpotLa máquina virtual 对象头(Object Header)incluye dos partes de información. La primera parte se utiliza para almacenar los datos de tiempo de ejecución del objeto en sí, como el código hash (HashCode), la edad de generación de GC, las marcas de estado de bloqueo, los bloqueos mantenidos por subprocesos, ID de subprocesos sesgados, marcas de tiempo sesgadas Espere, la longitud de esta parte de los datos es 32 y 64 B respectivamente en máquinas virtuales de 32 bits y 64 bits (sin considerar el escenario donde el puntero comprimido está activado)

Supongo que te gusta

Origin blog.csdn.net/qq_21383435/article/details/110728367
Recomendado
Clasificación