Class 文件的结构说明

在《JVM Specification 》中式这样定义Class 文件的结构:

ClassFile {

  u4 magic;   //魔数  每个Java class文件的前4个字节被称为它的魔数(magic number):0xCAFEBABE。魔数的作用在于,可以轻松地分辨出Java class文件和非Java class文件

  u2 minor_version;  //运行JDK 次版本号

   u2 major_version;//运行JDK主版本  52  表示1.8  class文件的下面4个字节包含了主、次版本号。对于Java虚拟机来说,版本号确定了特定的class文件格式,通常只有给定主版本号和一系列次版本号后,Java虚拟机才能够读取class文件。

  u2 constant_pool_count;   //常量池

  cp_info constant_pool[constant_pool_count-1];  //常量池信息数组

  u2 access_flags; //描述的是当前类(或者接口)的访问修饰符, 如public, private等,此外, 这里面还存在一个标志位, 标志当前的额这个class描述的是类, 还是接口

  u2 this_class;   //对当前类的描述

  u2 super_class;//是当前类的超类的信息

  u2 interfaces_count;//接口数量

  u2 interfaces[interfaces_count];//接口信息

  u2 fields_count;//字段数量

  field_info fields[fields_count];//字段信息

  u2 methods_count;//方法数量

  method_info methods[methods_count];//方法信息

  u2 attributes_count;//属性数量

  attribute_info attributes[attributes_count];//属性信息

}

在这里插入图片描述
需要详细了解的话,可以仔细阅读《JVM Specification 》的第四章“The class File Format ”,这里不再详细说明。

https://blog.csdn.net/luckydog1991/article/details/51654964

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值