Class类文件的结构
2019-03-19 15:05:51 18 举报
AI智能生成
Java的Class文件结构
作者其他创作
大纲/内容
class类文件的结构:以字节为基础单位的二进制流,对应着唯一的一个类或接口的定义信息。
1. 魔数:4个字节--u4。作用是确定该文件是否为能被虚拟机接受的Class文件。固定值是0XCAFEBABE。
2. 版本号:在Class文件中, 先是次版本号,然后是主版本号
次版本号:2个字节--u2
主版本号:2个字节--u2
3. 常量池
1. 常量池计数值:从1开始,22代表21个常量池--u2
2. 常量池:是一个表结构,包含着Class文件结构及其子结构中引用的所有字符串常量、类或接口名、字段名、其他常量。
5. 访问标志:两个字节, 标识类或接口的访问信息
ACC_SUPER
ACC_INTERFACE: 接口
ACC_ABSTRACT:抽象
ACC_SYNTHETIC:标识这个类并非由用户代码产生
ACC_ANNOTATION:注解
ACC_ENUM:枚举
6. 类索引:确定类的全限定名
7. 父类索引:确定父类的全限定名
8. 接口索引集合:所有实现的接口
接口计数器
9. 字段表集合(field_info): 用来描述类或接口中声明的变量, 里面的数据项为字段表。
作用对象
类变量
实例变量
字段表
定义:一个字段表描述一个变量
字段表结构
访问标志
ACC_PUBLIC: public
ACC_PRIVATE: private
ACC_PROTECTED: protected
ACC_STATIC: static
ACC_FINAL: final
ACC_VOLATALE: volatile
ACC_TRANSIENT: transient
ACC_SYNTHETIC
ACC_ENUM:枚举
名称索引:字段的简单名称
描述符索引:描述字段的数据类型, 指向一个CONSTANT_Utf8_info
属性表集合
例子:
10. 方法表集合(method_info)
9. 属性表集合
0 条评论
下一页