美文网首页一天一点学Java
Java-Javaassist(二)

Java-Javaassist(二)

作者: Sandy_678f | 来源:发表于2018-04-24 14:49 被阅读0次

Class File Format

type descriptor remark
u4 magic 用来标识.class文件的开头
u2 minor_version minor_version与najor_version一起形成.class文件的版本号
u2 major_version
u2 constant_pool_count
cp_info constant_pool[constant_pool_coun-1] Java字节码中,有一个常量池,用来存放不同类型的常量,常量池中的项是铜鼓cp_info的类型来表示的
u2 access_flags 指定类或接口的访问权限
u2 this_class 指向constant pool的索引值,该值必须是CONSTANT_Class_info类型,指定当前字节码定义的类或接口
u2 super_class 指向constant pool的索引值,该值必须是CONSTANT_Class_info类型,指定当前字节码定义的类或接口的直接父类,只有Object类才没有父类,此时索引值为0,并且父类不能是final类型。接口的父类都是Object类型
u2 interfaces_count
u2 interfaces[interfaces_count] interfaces数组记录所有当前类或接口直接实现的接口。数组中的每一项都是指向constant pool的索引值,该值必须是CONSTANT_Class_info类型,数组中接口的顺序和源代码中接口定义的顺序相同
u2 fields_count
field_info fields[fields_count] fields数组记录了类或接口中的所有字段,包括实例字段和静态字段,但不包含父类或父接口中定义的字段。数组中每项都是field_info类型值,它描述了字段的详细信息,如名称、描述符、字段中的attribute等
u2 methods_count
method_info methods[methods_count] methods数组记录了类或接口中的所有方法,包括实例方法、静态方法、实例初始化方法和类初始化方法,但不包括父类或接口中定义的方法。methods数组中每项都是method_info类型值,它描述了方法的详细信息,如名称、描述符、方法中的attribute等
u2 attributes_count
attribute_info attributes[attributes_count] attributes数组记录了类或接口相关的所有Attribute项(和字节相关的Attributes在field_info的attributes中,和方法相关的Attributes在method_info的attributes中,和字节码相关的Attributes在Code Attribute的attributes中)。attributes数组中的每项都是attribute_info类型,它描述了Attribute的名称、详细信息等。该attributes数组描述了ClassFile的一些额外信息。JVM必须忽略它不能识别的Attribute,而且那些Attribute不能识别的Attribute也不能影响class文件的语义。

相关文章

  • Java-Javaassist(二)

    Class File Format

  • Java-Javaassist(一)

    Javaassist main()方法运行完test01()方法后,在指定路径下会生成Employ.class文件。

  • 二(二)

    发什么神经 突然就很想花钱 一边心疼 一边毫不在乎的花 啧 莫名其妙

  • 二,二

    2017.9.11教师节后的周一,第一次走进教室,刚站到讲台两个小可爱送给我两束花,原谅我那时候人还没有认全没有记...

  • 二〇二〇

    本来这篇小结打算年初写的,但是想想后边还有复试就先放一放,结果复试结束后过了两个月才想起要写这篇小结... 时过境...

  • 二金二木二火二土

    今天看完了极简中国史,这本书看了半个多月,因为是八十年前写的书,不是白话文,所以看的特别累。不过从近代前辈的角度去...

  • 说二『似二非二的二』

    说实话原以为他最多似二,生活小节或许专门学着似二,中枢神经应该不至于非二,没想到最近越来越疯狂地绞尽脑汁地朝着二的...

  • 二胎(二)

    今天宝宝三十周了,还有十周你就要出来了,也许会提前,妈妈和家人都很期待。 到了孕晚期,睡觉是个问题,左睡右睡都不对...

  • 二小姐(二)

    我去了李家,那环境好,夫人老爷小姐都很和蔼,我正坐在由木头和瓷做的椅子上,正等待着女管家来接我,我人生地不熟...

  • 二、递归(二)

    一、棋盘分割问题 【每次切完一个棋盘,就是需要舍弃掉一面,只能在一面操作】

网友评论

    本文标题:Java-Javaassist(二)

    本文链接:https://www.haomeiwen.com/subject/pbadlftx.html