魔数 |
(用来验证是不是虚拟机合适的class文件 |
4字节 |
因为后缀名可以随意改动,所以使用魔数也是出于安全的考虑 |
版本号 |
(用来标识该class文件能够在哪个版本jdk运行) |
4字节 |
前2字节是次版本号,后2字节是主版本号 版本高的jdk可以加载版本低的class文件 |
常量池 |
(class文件的资源仓库) |
不定 |
主要存放字面量和符号引用,字面量就是文本字符串和申明为final的常量,符号引用包括了类和接口的全限定名,字段名称和描述符。方法名称和描述符,常量池的容量计数从1开始。因为常量池0的位置用来存储常量池的容量 |
访问标志 |
(定义是不是类,是不是public |
2字节 |
就是判断一个class的访问标志,是否final,是否public |
类索引 |
确定本类的全限定名 |
2字节 |
无 |
父类索引 |
确定父类的全限定名 |
2字节 |
无 |
接口索引计数器 |
统计接口的数量 |
2字节 |
无 |
接口索引集合 |
接口们的全限定名 |
接口计数器*2 |
无 |
字段表集合 |
描述申明的变量包括类级变量实例变量不包括局部变量 |
不定 |
不会列出超类或父接口的继承的字段 |
方法表集合 |
描述申明的方法包括访问标志,名称索引,描述符索引,属性表索引,属性表集合 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。