.class 文件
字节码文件, 是描述类的文件
JVM 不与包括 Java 语言在内的任何程序语言绑定.
JVM 只与 “Class 文件” 这种特定的二进制文件格式所关联 (这就是为什么其他语言能在 JVM 上运行).
Class 文件中包含了 Java 虚拟机指令集, 符号表以及若干其他辅助信息.
Java 语言中的各种语法, 关键字, 常量变量和运算符号的语义最终都会由多条字节码指令组合来表达.
这决定了字节码指令所能提供的语言描述能力必须比 Java 语言本身更加强大才行.
:::info
任何一个 Class 文件都对应着唯一一个类或接口的定义信息.
但反过来, 类或接口并不一定都得定义在文件里. 譬如类或接口也可以动态生成, 直接送入类加载器中.
Class 文件是一组以 8 个字节为基础单位的二进制流, 各个数据项目严格按照顺序紧凑地排列在文件之中, 中间没有添加任何分隔符.
Class 文件采用一种伪结构体来存储数据.
这种伪结构体只有两种数据类型: 无符号数和表, 表可嵌套.
整个 Class 文件本质上就是一张表.
:::
