¿Cuál es la especificación del archivo de clase?

El enfoque de este artículo

Dijimos anteriormente que la JVM es la implementación de la especificación de la clase, entonces, ¿qué es exactamente la especificación de la clase? Este artículo presenta en detalle

archivo de clase

En primer lugar, debemos saber que cuando javac compila el archivo en un archivo de clase, el archivo de clase en este momento es en realidad binario (ya sea 0 o 1), pero si lo convertimos a hexadecimal, su forma será más clara, ya que sigue Mostrar.

Es decir, el archivo de clase es el contenido anterior. Estos contenidos no están escritos casualmente. La estructura de la clase está estrictamente limitada. Qué byte representa qué significado, cuál es la longitud y cuál es el orden, todo no está permitido Ser cambiado. ¿Vamos a presentar brevemente el significado de cada parte en el archivo de clase?

significado

El archivo de clase contiene lo siguiente:

  • Número mágico——Número mágico: determine si este archivo es un archivo de clase que puede aceptar la máquina virtual (cafe babe)
  • Versión secundaria: el número de versión del archivo de clase (0000)
  • Versión principal: el número de versión del archivo de clase (0034)
  • constant_pool_count: el valor de conteo de capacidad del grupo constante. El grupo constante puede entenderse como el almacén de recursos (0010) en el archivo de clase. Hay constantes constant_pool_count-1. Para este ejemplo, son 16-1 = 15 constantes.
  • constant_pool: el contenido específico del conjunto de constantes, la longitud es constant_pool_c

Supongo que te gusta

Origin blog.csdn.net/huanfeng_AI/article/details/131970567
Recomendado
Clasificación