Red de conocimiento informático - Conocimiento informático - ¿Compilación y ejecución de instrucciones de código de bytes?

¿Compilación y ejecución de instrucciones de código de bytes?

El desarrollo de programación Java es un lenguaje de desarrollo de programación muy utilizado en el mercado. Hoy veremos cómo compilar y ejecutar algunas instrucciones sobre código de bytes en la programación Java.

El archivo de clase compilado a partir del archivo Java, la capa intermedia de Java multiplataforma, la JVM interpreta y ejecuta el código de bytes (modo de ejecución y compilación y ejecución JIT, que se explica a continuación), protegiendo el sistema operativo. confiar. Un byte (8 bits) puede almacenar 256 instrucciones diferentes. Estas instrucciones son códigos de bytes. Hay alrededor de 200 instrucciones en Java. Estas instrucciones forman un archivo de código de bytes (.class).

1. Las instrucciones principales del código de bytes:

El archivo hexadecimal en el archivo .class, donde CAFEBABE es un archivo compilado que indica que este archivo es java y 00000034 representa el número de versión. , 01670700. Un byte (8 bits) es una instrucción de byte. Dado que la instrucción numérica es demasiado difícil de entender, podemos usar javap para traducir la instrucción a una instrucción mnemotécnica.

1. Cargar o almacenar instrucciones

En el marco de la pila, los datos de la operación de la instrucción se transfieren entre la tabla de variables locales y la pila de operaciones.

ILOAD, ALOAD: empuja los tipos de referencia int y de objetos desde la tabla de variables locales a la parte superior de la pila de operaciones.

ISTORE, ASTORE: almacena los tipos de referencia int y de objetos desde la parte superior; de la pila de operaciones a En la tabla de variables locales;

ICONST, BIPUSH, SIPUSH, LDC: carga la luz constante en la parte superior de la pila de operaciones.

2. Instrucciones de operación

Realice operaciones en los valores de la pila de operaciones y escriba los resultados en la parte superior de la pila de operaciones, como IADD e IMUL.

3. Instrucciones de conversión de tipos

I2L, D2F

4. Instrucciones de acceso y creación de objetos

NUEVO

Además de las instrucciones de código de bytes, Changping Computer Training cree que también incluye LINENUMBER, que almacena la correspondencia entre el código de bytes y el código fuente para facilitar la depuración y el posicionamiento. LOCALVARIABLE almacena las tablas locales utilizadas por el método actual.

2. El proceso de convertir archivos de código fuente Java en archivos de código de bytes (.class)

Archivos fuente JAVA ----------gt; --------gt; análisis de sintaxis---------gt; análisis semántico---------gt; generación de código de bytes--------- gt; archivo

Análisis léxico: divide palabras, operadores, etc. según espacios para formar un flujo de información simbólica;

Análisis gramatical: genera gramática basada en el flujo de tokens y las especificaciones gramaticales de Java. ;

Análisis semántico: compruebe si la concordancia de palabras clave y tipos es correcta;