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