- 魔数(Magic Number): 文件头4个字节表示文件类型。Java类文件的魔数是固定的,通常为
0xCAFEBABE。 - Class文件版本号: 用于表示该文件的Java版本。例如,Java 8版本的Class文件版本号为
52.0。 - 常量池(Constant Pool): 存放类文件中的常量,包括类名、字段名、方法名等。常量池的第一个元素是一个不使用的占位符。
- 访问标志: 描述类或接口的修饰符,如public、final等。
- 当前类、父类、接口索引集合: 包括类的全限定名、父类的全限定名以及实现的接口。
- 字段表集合: 描述类或接口中声明的变量。包括变量的访问标志、名称、描述符等。
- 方法表集合: 描述类或接口中声明的方法。包括方法的访问标志、名称、描述符等。
- 属性表集合: 描述类、字段或方法的附加信息。例如,Code属性用于存放方法的字节码。
这是Java类文件的基本结构,它们按照一定的顺序组成一个完整的Class文件。这个结构的设计使得Java语言具有跨平台性,因为Java虚拟机可以在不同平台上运行相同的.class文件。