魔数: 确定这个文件是否为一个能被虚拟机接收的 Class 文件。

Class 文件版本 :Class 文件的版本号,保证编译正常执行。

常量池 :常量池主要存放两大常量:字面量和符号引用。

访问标志 :标志用于识别一些类或者接口层次的访问信息,包括:这个 Class 是类还是接口, 是否为 public 或者 abstract 类型,如果是类的话是否声明为 final 等等。

当前类索引,父类索引 :类索引用于确定这个类的全限定名,父类索引用于确定这个类的父类的全限定名,由于 Java 语言的单继承,所以父类索引只有一个,除了 java.lang.Object 之 外,所有的 java 类都有父类,因此除了 java.lang.Object 外,所有 Java 类的父类索引都不为 0。

接口索引集合 :接口索引集合用来描述这个类实现了那些接口,这些被实现的接口将按 implents(如果这个类本身是接口的话则是extends) 后的接口顺序从左到右排列在接口索引集合中。

字段表集合 :描述接口或类中声明的变量、字段包括类级变量以及实例变量,但不包括在方法内部声明的局部变量。

方法表集合 :类中的方法。

属性表集合 : 在 Class 文件,字段表,方法表中都可以携带自己的属性表集合。