[jvm] -- 类文件结构篇

  • 类文件结构

结构图 

  • 魔数
    • 头四个字节,作用是确定这个文件是否为一个能被虚拟机接收的 Class 文件。
  • Class 文件版本
    • 第五和第六是次版本号,第七和第八是主版本号。
    • 高版本的 Java 虚拟机可以执行低版本编译器生成的 Class 文件,但是低版本的 Java 虚拟机不能执行高版本编译器生成的 Class 文件。
  • 常量池
    • 字面量(接近于 Java 语言层面的的常量概念)
      • 类和接口的全限定名
      • 字段的名称和描述符
      • 方法的名称和描述符
    • 符号引用(属于编译原理方面的概念)
  • 访问标志
    • 用于识别一些类或者接口层次的访问信息,包括:这个Class是类还是接口,是否为 public或者abstract 类型,如果是类的话是否声明为final 等等。
  • 当前类索引,父类索引与接口索引集合
    • 类索引用于确定这个类的全限定名
    • 父类索引用于确定这个类的父类的全限定名
    • 接口索引集合用来描述这个类实现了哪些接口,这些被实现的接口将按implents(如果这个类本身是接口的话则是extends)后的接口顺序从左到右排列在接口索引集合中。
  • 字段表集合
    • 字段表(field info)用于描述接口或类中声明的变量。
  • 方法表集合
  • 属性表集合
posted @ 2020-06-30 14:36  双木l之林  阅读(92)  评论(0编辑  收藏  举报