类文件结构
1.类文件结构
1.1 无关系
- 语言无关:Java虚拟机不与包括Java语言在内的任何语言绑定
- 文件有关:与Class文件特定二进制文件格式关联
1.2 类文件结构
- 任何一个Class文件对应唯一一个类或者接口的定义信息,反之不然(可由类加载器直接生成)
- 内容:
- 8位字节为基础单位的二进制流
- 无分隔符
- 8位字节以上数据,高位在前分割
- Class文件格式:类似C语言体系结构的伪结构体(无符号数 + 表)
- 表:多个无符号数 + 其它表作为数据项构成符合数据结构类型
- 结尾:_info
- Class文件本质就是一张表
- 当需要描述统一类型但数量不定的多个数据时,使用1个前置容量计数器+若干连续数据项的形式
1.3 具体文件
工具:javap -verbose输出字节码内容
-
前4个字节:被称为魔数(Magic Number),确定文件是否为能被虚拟机接受的Class文件,值为:0xCAFEBABE
-
5-8字节:Class文件版本号,第5,6为次版本号,第7,8为主版本号
java版本号从45开始JDK1