30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
## 魔数与版本号
|
||
头四个字节为魔数(Magic Number)
|
||
0XCAFFBABE
|
||
确定改文件是否为一个可以被虚拟机接受的Class文件
|
||
第五个和第六个为次版本号
|
||
第七个和第八个为主版本号
|
||
## 常量池
|
||
常量池入口防止2u类型数据,代表常量池容量技术值
|
||
主要放置两大类常量
|
||
字面量
|
||
比较接近Java语言层面的常量概念,如文本字符串,被声明为final的常量值等
|
||
符号引用
|
||
1. 被模块导出或开放的包
|
||
2. 类和接口的全限定名
|
||
3. 字段的名称和描述符
|
||
4. 方法的名称和描述符
|
||
5. 方法句柄和方法类型
|
||
6. 动态调用点和动态常量
|
||
## 访问标志
|
||
常量池后两个字节为访问标志,用于识别一些类或接口层次的访问信息
|
||
这个Class是类还是接口,是否public类型,是否为abstract,是类是否为final类型
|
||
共16个,至定义了9个
|
||
## 类索引,父类索引与接口索引集合
|
||
类索引和父类索引为u2类型数据,接口索引为一组u2类型数据集合,通过这些确定该类型继承关系
|
||
类索引确定该类全限定名,父索引确定该类父类的全限定名
|
||
接口索引第一项u2为接口计数器,表示索引表容量
|
||
## 字段表集合
|
||
描述接口或类中声明的变量
|
||
## 方法表集合
|
||
## 属性表集合 |