名称 | 类型 | 数量 |
---|---|---|
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属性的结构