首页 > 其他分享 >类文件结构

类文件结构

时间:2023-07-06 14:32:25浏览次数:27  
标签:count 文件 接口 u2 索引 父类 Class 结构

根据Java虚拟机规范,类文件由单个ClassFile结构组成:

ClassFile {
   u4 magic; //Class ⽂件的标志
   u2 minor_version;//Class 的⼩版本号
   u2 major_version;//Class 的⼤版本号
   u2 constant_pool_count;//常量池的数量
   cp_info constant_pool[constant_pool_count-1];//常量池
   u2 access_flags;//Class 的访问标记
   u2 this_class;//当前类
   u2 super_class;//⽗类
   u2 interfaces_count;//接⼝
   u2 interfaces[interfaces_count];//⼀个类可以实现多个接⼝
   u2 fields_count;//Class ⽂件的字段属性
   field_info fields[fields_count];//⼀个类会可以有个字段
   u2 methods_count;//Class ⽂件的⽅法数量
   method_info methods[methods_count];//⼀个类可以有个多个⽅法
   u2 attributes_count;//此类的属性表中的属性数
   attribute_info attributes[attributes_count];//属性表集合
}

类文件结构_父类

1、魔数:确定这个文件是否是一个能被虚拟机接收的Class文件。

2、Class文件版本:Class文件的版本号,保证编译正常执行。

3、常量池:常量池主要存放两个常量:字符量和符号引用。

4、访问标志:标志用于识别一些类或者接口层次的访问信息,包括:这个Class是类还是接口,是否为public或abstract类型,如果是类的话是否声明为final等等。

5、当前类索引,父类索引:类索引用于确定这个类的权限定名,父类索引用于确定这个类的父类的全限定名,由于Java语言的单继承,所以父类索引只有一个,除了java.lang.Object之外,所有的Java类都有父类,因此除了java.lang.Object外,所有Java类的父类索引都不为0。

6、接口索引集合:接口索引集合用来描述这个类实现了那些接口,这些被实现的接口将按implements(如果这个类本身是接口的话则是extends)后的接口顺序从左到右排列在接口索引集合中。

7、字段表集合:描述接口或类中声明的变量。字段包括类级变量以及实例变量,但不包括在方法内部声明的局部变量。

8、方法表集合:类中的方法。

9、属性表集合:在Class文件,字段表,方法表中都可以携带自己的属性表集合。


标签:count,文件,接口,u2,索引,父类,Class,结构
From: https://blog.51cto.com/u_11315052/6642192

相关文章

  • 如何实现Java 视频文件去水印的具体操作步骤
    Java视频文件去水印在现今的数字媒体时代,视频文件无疑是最为常见的媒体之一。然而,我们有时会遇到一些带有水印的视频文件,这些水印可能是广告、商标或其他标记,影响了视频的观看体验。本文将介绍如何使用Java语言去除视频文件中的水印,并提供相应的代码示例。第一步:了解视频文件格......
  • 结构体,指针函数和数组初始化
    struct_m_malloc_dev{void(*init)(uint8_t);//初始化函数uint8_t(*perused)(uint8_t);//内存使用率uint8_t*membase[SRAMBANK];//内存池管理srambank个区域的内存uint16_t*memmap[SRAMBANK];//内存管理状态表uint8_tmemrdy[SRAMBANK];//内存管理......
  • js 实现文件下载并重命名
    JavaScript实现文件下载并重命名 第一种是HTML官网中的方法<ahref="/images/liang.jpg"download="文件名称">HTML5中a标签提供了一个filename属性,可以下载成指定的download属性名称这种同源访问是没有问题的,但一跨域就不行了,试了其它方法,不是报跨域错误,就是在当......
  • 前端打包的dist文件 怎么用nginx 在 Windows 部署
    ​  要在Windows上使用Nginx部署前端打包的dist文件,您可以按照以下步骤进行操作:下载Nginx:首先,您需要从Nginx官方网站(https://nginx.org/)下载适用于Windows的Nginx安装程序,并将其安装到您的计算机上。配置Nginx:安装完成后,在Nginx的安装目录中找到nginx.......
  • 前端打包的dist文件 怎么用nginx 在 Windows 部署
    ​  要在Windows上使用Nginx部署前端打包的dist文件,您可以按照以下步骤进行操作:下载Nginx:首先,您需要从Nginx官方网站(https://nginx.org/)下载适用于Windows的Nginx安装程序,并将其安装到您的计算机上。配置Nginx:安装完成后,在Nginx的安装目录中找到nginx.......
  • linux----使用rm -rf 删除大文件后磁盘空间并未释放的解决办法
    https://blog.csdn.net/redrose2100/article/details/129573059【原文链接】linux----使用rm-rf删除大文件后磁盘空间并未释放的解决办法(1)问题:当发现linux系统中存在大文件,磁盘空间快满了后,一般会使用rm-rfxxx将大文件删除,但是删除后通过df-h发现磁盘空间并未释放(2)解决......
  • 1、使用bat批量重命名文件
    有时我们想要将一个文件夹内的所有文件进行重命名,需要下载单独的工具。如果某些情况下没有网,而且着急重命名呢,这里给大家介绍一种方法,能够快速对文件进行重命名。使用bat批处理命令,批处理就是对某对象进行批量的处理,文件的扩展名为bat。文件如下:1、新建rename.xls文件填入以......
  • TFDMemTable从主结构
    TFDMemTable到XE11后,已经非常优秀了,一改clientDataSet所有的问题网上指导的设置主从结构,折腾我半天还是用不了。经过慢慢尝试,设置从主要设置以下:从表 FDMemTable 1.MasterSource 主表的DataSource2.MasterFields 关联字段3.IndexFieldNames 索引,这个非常重要,没设置不行......
  • c语言结构体指针初始化
    结构体定义结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。结构是C编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构体中的数据成员可以是基本数据类型(如int、float、char等),也可以是其他结构体类型、指针类型等......
  • JMeter中获取Request内容写到Txt文件中
    JMeter中获取Request内容写到Txt文件中参照文档https://blog.csdn.net/chenqinglanhao/article/details/124125435 importjava.net.URLDecoder;importorg.json.*;//StringrequestAll=prev.getSamplerData(); ---获取Request所有内容//print("requestAll"+requestAll);......