1. Información general
HotSpot
En 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部分,没有对象填充,否则就是有的.
HotSpot
La 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)