"La comprensión en profundidad de Java Virtual Machine", tercera edición sexto capítulo resume los puntos principales

Como se usa en este documento sólo como una lista de revisión

estructura de clases

1. Los números (1 a 4 bytes) magia
fijan 0xCOFEBABE
2. número de versión (5-8 bytes)
5,6 Byte: Número de una versión menor, JDK2 ~ jdk12 sido puesto a cero
7,8 bytes : número de versión principal, contando desde el principio 45
de la piscina 3. constante
índice a partir de un
valor de conteo de memoria constante 9, 10 bytes
seguido por una tabla de constantes
bandera 4. acceso
5. establece el índice de clase
6. el índice de matriz fija
7. Interfaz conjunto de índices
mesa conjunto 8. campo
9. La tabla de conjunto método

Más porciones están dispuestas en el orden
conjunto de tablas incluidas en el anterior conjunto de atributos

contenidos piscina constantes

字面量
符号引用

símbolo de la clase JAVA entiende por referencia
piscina constante CCP 17 tipos de tipos, cada tipo es una variable Byte principio, a identificar el tipo seguido de varios tipos de
tipos de formas P222 Ver

bandera de acceso

Esta clase de modificadores (final, pública, resumen), tipos (clases, interfaces, anotaciones, enumeraciones, módulos, etc.), ya sea generada por un código de usuario (que puede ser añadida por JVM), instrucción invokespecial si se permite
un total de 9 bits de bandera está disponible, consulte P224

Índice de clase

u2, a menudo una escala de puntos, representa un nombre de clase completo del
índice de matriz, el mismo índice de interfaz, pero el índice es un conjunto de interfaces, la interfaz tiene un contador

hoja de propiedades

Code属性 记录方法中的数据
Exception 方法抛出的异常(throws)
LineNumberTable 记录指令对应的java行号,非必须
LocalVariableTable 记录参数名,非必须,如果没有,代码调试会无法获取相关参数的值
LocalVariableTypeTable 用于泛型
SourceFile 源码文件名称
SourceDebugExtension 用于帮助非java文件(如jsp)的Debug
ConstantValue 用于static变量的初始化,javac追加限制 :final
InnerClasses  记录内部类与宿主类的关系
Deprecated 布尔属性,表示是否过时
Synthetic 布尔属性,表示是否有编译器自动生成
StackMapTable 用于虚拟机验证字节码
Signature 记录泛型相关信息,便于反射
BootstrapMethods 
MethodParameter 记录方法的各个形参名称和信息
    模块化相关属性
    运行时注解

caja de la variable

JVM unidad más pequeña de asignación de memoria utilizada para las variables locales

Método longitud del código de clase

No más de 65.535 instrucciones

tabla de excepciones

P237

Supongo que te gusta

Origin www.cnblogs.com/ZGQblogs/p/12584518.html
Recomendado
Clasificación