JVM类的结构与字节码
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Class文件内部结构
- 魔数
每个Class文件开头的4个字节的无符号整数称为魔数。魔数是Class文件的标识
用于确定这个文件是否是能被虚拟机接收的合法的Class文件。
固定值 CAFEBABE 咖啡宝贝。如果Class文件不以CAFEBABE开头JVM在进行文件校验时会抛出异常
- CLass文件版本
- 紧接着魔数的 4 个字节存储的是 Class 文件的版本号。第1、2个字节的含义是
编译的副版本号minor_version
第3、4个字节是编译的主版本号major_version
- 它们共同构成了 class 文件的格式版本号
- 常量池
- 常量池计数器常量池中常量的数量是不固定的 所以在常量池的入口需要放置一项u2类型的无符号数代表常量池容量计数值。
- 常量池表主要存放字面量和符号引用
- 访问标志
- 用于识别一些类或者接口层次的访问信息如是否为 public、是否声明 final等
- 类索引父类索引接口索引集合
- 字段表集合
- 方法表集合
- 属性表集合
指 class 文件所携带的辅助信息如class源文件名称
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |