名称 | 类型 | 数量 |
|---|---|---|
magic | u4 | 1 |
minor_version | u2 | 1 |
major_version | u2 | 1 |
constant_pool_count | u2 | 1 |
constant_pool | cp_info | constant_pool_count-1 |
access_flags | u2 | 1 |
this_class | u2 | 1 |
super_class | u2 | 1 |
interfaces_count | u2 | 1 |
interfaces | u2 | interfaces_count |
fields_count | u2 | 1 |
fields | field_info | fields_count |
u2 | methods_count | 1 |
methods | method_info | methods_count |
attributes_count | u2 | 1 |
attributeds | attributed_info | attributes_count |
javap -verbose Class可以输出常量表
常量池中常量项结构总表1

常量池中常量项结构总表2
访问标志(access_flag)用来识别一些类或者接口层次的访问信息:

访问标志

字段表结构 -access_flag是字段修饰符,取值如下:

字段访问标志
[字符表示()内。
描述符字段含义
Code属性中
方法表结构

方法访问标志

JVM预定义属性1

JVM预定义属性2

属性表结构

Code属性表结构

异常表属性结构

受检异常表结构
javac中用 -g:none或者-g:lines选项来取消或者要求生成这项信息,默认生成,取消后抛出异常时堆栈无法显示出错的行号。也无法按照源码设置断点
LineNumberTable属性结构
javac中使用-g:none或者-g:vars取消或者要求生成。如果取消,所有参数名称会消失
LocalVariableTable属性表结构

local_variable_info项目结构
-g:none,-g:source 
SourceFile属性结构

ConstantValue属性结构

InnerClass属性结构

inner_classes_info表结构

inner_class_access_flags标志

属性结构

Signature属性结构

BootstrapMethods属性结构

bootstrap_method属性的结构