En estudios anteriores, todo el mundo debe haber oído hablar de la cabeza del objeto. Sabemos que los encabezados de objetos se pueden utilizar para almacenar información, pero es posible que muchas personas no lo hayan probado en tipos de almacenamiento específicos. Se divide en dos tipos: almacenamiento de datos y puntero de tipo del propio objeto. Este último tiene relativamente poco contacto con todos. Presentaremos los conceptos por separado en los siguientes artículos. Los contenidos específicos son los siguientes.
1. El encabezado del objeto se utiliza principalmente para almacenar dos datos.
Almacenar datos sobre el funcionamiento del propio objeto.
puntero de tipo
2. Los datos cuando el objeto en sí se está ejecutando incluyen principalmente: código hash, edad de generación de GC, indicador de estado de bloqueo, bloqueo retenido por el hilo, ID de hilo sesgado, marca de tiempo sesgada, etc. La longitud de esta parte de los datos es de 32 bits y 64 bits respectivamente en máquinas virtuales de 32 y 64 bits (los punteros comprimidos no están habilitados).
El puntero de tipo se puede utilizar para determinar de qué clase es una instancia este objeto, pero la implementación de la máquina virtual no tiene que conservar el puntero de tipo en el objeto.
Los anteriores son los dos tipos de almacenamiento de encabezados de objetos Java. Los amigos que nunca han estado expuestos a ellos pueden hacer algunos experimentos prácticos con estos dos almacenamientos diferentes después de clase.