xxd
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xxd相关的知识,希望对你有一定的参考价值。
Code |
方法表 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 max_stack u2 1 操作数栈深度的最大值 max_locals u2 1 局部变量表所需的存储空间 code_length u4 1 Code u1 code_length code_length与code存储Java源程序编译后的字节码指令 exception_table_length u2 1 exception_table exception_info exception_table_length attribute_count u2 1 Attributes attribute_info attributes attributes_count } |
ConstantValue |
字段表 通知虚拟机自动为静态变量赋值 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 constantvalue_index u2 1 代表常量池中一个字面量的引用 } |
Deprecated |
类、方法表、字段表 某个类、字段或方法不在推荐使用 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 } |
Exceptions |
方法表 列出方法中可能抛出的受检查异常 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 number_of_exceptions u2 1 可能抛出number_of_exceptions种异常 exception_index_table u2 number_of_exception 每一种受检查异常用exception_index_table项表示,这是 个指向常量池中CONSTANT_Utf8_info型常量的索引 } |
EnclosingMethod |
类文件 |
|
InnerClass |
类文件 记录内部类与宿主类之间的关联 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 number_of_classes u2 1 记录了多少个内部类的信息 Inner_classes inner_classes_info number_of_classes 每一个内部类的信息都由一个inner_classes_info表进行描述 } Inner_classes_info { Inner_class_info_index u2 1 指向常量池中CONSTANT_Class_info类型常量的索引,内部类的符号引用 outer_class_info_index u2 1 指向常量池中CONSTANT_Class_info类型常量的索引,宿主类的符号引用 Inner_name_index u2 1 指向常量池中CONSTANT_Class_info类型常量的索引,内部类名称,匿名内部类值为0 Inner_class_access_flags u2 1 内部类的访问标志 } |
LineNumberTable |
Code属性 描述Java源码行号与字节码行号(字节码的偏移量)之间的对应关系 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 line_number_table_length u2 1 line_number_table line_number_info(start_pc u2字节码行号,line_number u2 Java源码行号) Line_number_table_length } |
LocalVariableTable LocalVariableTypeTable |
Code属性 描述栈帧中局部变量表的变量与Java源码中定义的变量之间的关系 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 local_variable_table_length u2 1 local_variable_table local_variable_info(start_pc u2字节码行号,line_number u2 Java源码行号) local_variable_table_length }
Local_variable_info { start_pc u2 1 局部变量的生命周期开始的字节码偏移量 length u2 1 作用范围覆盖的长度,与start_pc结合表示局部变量在字节码中的作用域范围 name_index u2 1 局部变量的名称 descriptor_index u2 1 局部变量的描述符 index u2 1 局部变量在栈帧局部变量表中Slot的位置 } |
StackMapTable |
Code属性 在虚拟机类加载的字节码验证阶段被新类型检查验证器使用 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 Number_of_entries u2 1 Stack_map_frame_entries stack_map_frame number_of_entries } |
Signature |
类、方法表、字段表
|
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 Signature_index u2 1 指向CONSTANT_Utf8_info常量的索引,表示类签名、方法类型签名或字段类型签名 } |
SourceFile |
类文件 生成class文件的源码文件名称 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 sourcefile_index u2 1 类型是CONSTANT_Utf8_info类型,表示源码文件的文件名 } |
SourceDebugExtension |
类文件 |
|
Synthetic |
类、方法表、字段表 此字段或方法不是由源码产生,而是由编译器自行添加的 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 } |
LocalVariableTypeTable |
类 |
|
RuntimeVisibleAnnotations |
类、方法表、字段表 |
|
RuntimeInvisibleAnnotations |
类、方法表、字段表 |
|
RuntimeVisibleParameterAnnotations |
方法表 |
|
RuntimeInvisibleParameterAnnotations |
方法表 |
|
AnnotationDefault |
方法表 |
|
BootstrapMethods |
类文件 |
{ attribute_name_index u2 1 -指向CONSTANT_Utf8_info常量的索引,表示属性的名称 attribute_length u4 1 属性值的长度 Num_bootstrap_methods u2 1 Bootstrap_methods bootstrap_method num_bootstrap_methods }
Bootstrap_method{ Bootstrap_method_ref u2 1 Num_bootstrap_arguments u2 1 Bootstrap+arguments u2 num_bootstrap_arguments } |
以上是关于xxd的主要内容,如果未能解决你的问题,请参考以下文章