Tal como é aqui utilizado apenas como uma lista de revisão
estrutura de classe
1. Os números (1 a 4 bytes) mágica
fixo 0xCOFEBABE
2. número de versão (bytes 5-8)
5,6 Byte: Número uma versão menor, JDK2 ~ JDK12 sido zerada
7,8 bytes : grande número de versão, contando a partir do 45 começando
piscina 3. constante
índice a partir de um
valor de contagem constante piscina 9, 10-byte
, seguido por uma tabela de constantes
4. acesso bandeira
5. índice de classe definida
6. o índice de pai definido
7. interface índice conjunto
tabela conjunto 8. campo
9. O conjunto mesa método
Mais porções são dispostos na ordem
conjunto de tabelas incluídas no conjunto acima de atributos
conteúdos piscina constantes
字面量
符号引用
JAVA símbolo de classe compreendida por referência
constante piscina CCP 17 tipos de tipos, cada tipo é um tag início byte, você identificar o tipo seguido por vários tipos de
tipos de P222 formulários See
bandeira acesso
Esta classe de modificadores (final, público, resumo), tipos (classes, interfaces, anotações, enumerações, módulos, etc.), se gerados por um código do utilizador (o qual pode ser adicionado por JVM), instrução invokespecial se para permitir que
um total de 9 bits Bandeira está disponível, consulte P224
Índice de classe
u2, muitas vezes numa escala ponto, representa um nome de classe completo do
índice de pai, o mesmo índice de interface, mas o índice é uma colecção de interfaces, a interface tem um contador
folha de propriedades
Code属性 记录方法中的数据
Exception 方法抛出的异常(throws)
LineNumberTable 记录指令对应的java行号,非必须
LocalVariableTable 记录参数名,非必须,如果没有,代码调试会无法获取相关参数的值
LocalVariableTypeTable 用于泛型
SourceFile 源码文件名称
SourceDebugExtension 用于帮助非java文件(如jsp)的Debug
ConstantValue 用于static变量的初始化,javac追加限制 :final
InnerClasses 记录内部类与宿主类的关系
Deprecated 布尔属性,表示是否过时
Synthetic 布尔属性,表示是否有编译器自动生成
StackMapTable 用于虚拟机验证字节码
Signature 记录泛型相关信息,便于反射
BootstrapMethods
MethodParameter 记录方法的各个形参名称和信息
模块化相关属性
运行时注解
ranhura variável
JVM menor unidade de alocação de memória usada para as variáveis locais
Método comprimento de código de classe
Não mais de 65.535 instruções
mesa de exceção
P237