深入理解JVM之Java字节码文件(3)

code_attribute{
u2 attribute_name_index;
u4 attribute_length;
u2 max_stack;
u2 max_locals;
u4 code_length;
u1 code[code_length];
u2 exception_table_length;
exception_info exception_table[exception_table_length];
u2 attributes_count;
attribute_info attributes[attributes_count];
}
constantvalue_attribute{
u2 attribute_name_index;
u4 attribute_length;
u2 constantvalue_index;
}

简单名称与描述符:

简单名称是指字段或方法的简单的一种描述,比如person class:private String name字段简单名称为name,Object class:public String toString()方法简单名称为toString,注意:字段或方法简单名称不允许出现  .  :  / [ 等ASSIC或Unicode字符表示形式

描述符一般指字段或方法的类型,字段描述符表示字段类型描述,方法描述符表示参数描述与返回值描述,如:person class:private String name字段描述符为Ljava.lang.String,com.test.Person class:setName(String name)方法描述符为(Ljava.lang.String)V,注意:其中V表示返回值为void类型,如果参数为void则表示为()Ljava.lang.Object,表示无参的返回值为java.lang.Object引用类型的方法描述符

字段描述符解释:B byte 字节类型,Z boolean 布尔类型,C char 字符类型,S short 短整型,I 整型,L long 长整型,F float 单进度浮点类型,D double 双精度浮点类型,L reference 对象引用类型,[ reference 数组引用类型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/bd27c88be11858984d57ef30e894ea10.html