Em estudos anteriores, todos devem ter ouvido falar da cabeça do objeto. Sabemos que cabeçalhos de objetos podem ser usados para armazenar informações, mas muitas pessoas podem não ter tentado isso em tipos de armazenamento específicos. É dividido em dois tipos: armazenamento de dados e ponteiro de tipo do próprio objeto. Este último tem relativamente pouco contato com todos. Apresentaremos os conceitos separadamente nos artigos a seguir.
1. O cabeçalho do objeto é usado principalmente para armazenar duas informações.
Armazene dados sobre a operação do próprio objeto
ponteiro de tipo
2. Os dados quando o próprio objeto está em execução incluem principalmente: código hash, idade de geração do GC, sinalizador de status de bloqueio, bloqueio mantido pelo thread, ID do thread tendencioso, carimbo de data / hora tendencioso, etc. O comprimento desta parte dos dados é de 32 bits e 64 bits, respectivamente, em máquinas virtuais de 32 e 64 bits (os ponteiros compactados não estão habilitados).
O ponteiro de tipo pode ser usado para determinar de qual classe este objeto é uma instância, mas a implementação da máquina virtual não precisa reter o ponteiro de tipo no objeto.
Acima estão os dois tipos de armazenamento de cabeçalhos de objetos Java. Amigos que nunca foram expostos a eles podem fazer alguns experimentos práticos nesses dois armazenamentos diferentes após a aula.