JVM类的结构与字节码

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Class文件内部结构

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