趣文网 > 作文大全

深入理解Java虚拟机:类文件结构

2020-12-02 03:40:02
相关推荐

Class文件格式采用一种类似于C语言结构体的伪结构来存储数据。两种数据类型无符号数:属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或者按照UTF-8编码构成的字符串值。表:是由多个无符号数或者其他表作为数据项构成的复合数据类型,为了便于区分,所有表的命名都习惯性地以"_info"结尾。表用于描述有层次关系的复合结构的数据,整个Class文件本质上也可以视作是一张表。Class文件格式:

PS:以下的类型和名称与上面表格中的一一对应

魔数与Class文件的版本

魔数(magic-u4):每个Class文件的头4个字节被称为魔数。作用是确定这个文件是否为一个能被虚拟机接受的Class文件。次版本号(minor_version-u2)主版本号(major_version-u2)常量池

常量池容量计数值(constant_pool_count-u2)常量池(constant_pool-cp_info):可以比喻为Class文件里的资源仓库,它是Class文件结构中与其他项目关联最多的数据。常量池类常量字面量:接近于Java语言层面的常量概念,如文本字符串、被声明为final的常量值等。符号引用:属于编译原理方面的概念。被模块导出或开放的包类和接口的全限定名字段的名称和描述符方法的名称和描述符方法句柄和方法类型动态调用点和动态常量常量池中的17种数据类型的结构总表

访问标志

访问标志(access_flags-u2):用于识别一些类或者接口层次的访问信息。

类索引、父类索引与接口索引集合

类索引(this_class-u2):确定这个类的全限定名。父类索引(super_class-u2):确定这个类的父类的全限定名。接口索引计数器(interfaces_count-u2):表示索引表的容量。接口索引(interfaces-u2):接口索引集合。字段表集合

用于描述接口或者类中声明的变量。包括类级变量以及实例级变量,不包括在方法内部声明的局部变量。字段表计数器(fields_count-u2)字段表(fields-field_info):用于描述接口或者类中声明的变量。

字段访问标志(access_flags-u2)

索引值(name_index-u2):字段的简单名称索引值(descriptor_index-u2):字段和方法的描述符方法表集合

方法表计数器(methods_count-u2)方法表(methods-method_info):用于描述接口或者类中声明的方法。

方法访问标志(access_flags-u2)

属性表集合

虚拟机规范预定义的属性

属性表结构

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

高起专英语作文 发现诗意作文 关于科技创新的作文 那一刻我流泪了作文 以亲情为题的作文 描写花灯的作文 中考满分作文议论文 湖北专升本英语作文 南京博物院作文 向日葵的作文300字 最喜欢的季节英语作文 奔跑吧少年作文 一句话的力量 作文 什么的童年作文 雪后作文 myhome英语作文 我的妈妈350字作文 我的家风家训作文 尝试作文500字 家乡美食作文600字 作文素材300字左右 读书与成长 作文 迪士尼游玩作文 我的愿望作文600字 打糍粑的作文 初一英语作文大全 安徽中考满分作文 吃苦精神作文 什么给我快乐作文 作文集后记