一.Class文件结构

    Class文件是一组以8位字节为基础单位的二进制流,Class文件中有两种数据类型,分别是无符号数和表

    1,无符号数,以u1、u2、u4、u8分别代表1个字节、2个字节、4个字节、8个字节的无符号数

    2,表是由多个无符号数或者其它表作为数据项构成的复合数据类型,所以表都以“_info”结尾,由多个无符号数或其它表构成的复合数据类型


jvm(5)Class文件

 1.魔数

       魔数,魔数的唯一作用是确定这个文件是否为一个能被虚拟机所接受的 Class 文件。魔数值固定为 0xCAFEBABE,不会改变。

  2. Class文件版本  

        版本 JDK1.8是52

        jvm(5)Class文件

     

  3.  常量池    

        常量池,constant_pool 是一种表结构,它包含 Class 文件结构及其子结构中引用的所有字符串常量、类或接口名、字段名和其它常量。

        jvm(5)Class文件

        


 4. 访问标志    

    访问标志,access_flags 是一种掩码标志,用于表示某个类或者接口的访问权限及基础属性

jvm(5)Class文件

 5.类索引,父类索引,接口表

    (1)this_class:类索引,this_class 的值必须是对 constant_pool 表中项目的一个有效索引值。

                                表示这个 Class 文件所定义的类或接口。

      (2) supper_class:父类索引,对于类来说,super_class 的值必须为 0 或者是对 constant_pool 表中项目的一个有效索引值。
   (3)interface []:接口表,interfaces[]数组中的每个成员的值必须是一个对 constant_pool 表中项目的一个有效索引值

 6. 字段表集合   

      声明的所有字段,但不包括从父类或父接口继承的部分。

 7.方法表集合    

        只描述当前类或接口中声明的方法,不包括从父类或父接口继承的方法。

 8.属性表集合

相关文章:

  • 2021-10-23
  • 2022-12-23
  • 2022-01-22
  • 2021-12-19
  • 2018-07-01
猜你喜欢
  • 2021-09-29
  • 2021-04-28
  • 2022-02-23
  • 2022-12-23
  • 2021-05-14
  • 2021-09-05
  • 2021-12-12
相关资源
相似解决方案