美文网首页
第六章类文件结构

第六章类文件结构

作者: 小小少年Boy | 来源:发表于2018-07-21 17:46 被阅读0次

class文件是一组以八字节为基础单位的二进制流,class文件格式采用c语言的伪结构来存储数据,它一共有两种数据类型,
一是无符号数:基本数据类型(数字,索引引用,数量值。)
二是表:多个无符号数或其他表构成的复合数据类型。

class类文件结构是被严格限制:
第一:魔术与class文件的版本。
第二:常量池,class文件的资源仓库,常量池中存的是字面量和符号引用。
字面量:字符串和final常量
符号引用:类和接口的全限定名,字段的名称和描述符,方法的名称和描述符。(备注:描述符的作用是用来描述字段的数据类型,方法的参数列表和返回值)

为什么需要符号引用呢?
虚拟机加载class文件的时候进行动态链接。也就是说,在class文件中不会保存各个方法字段的最终内存布局信息,因此这些字段、方法的符号引用不经过运行期转换的话,无法得到真正的内存入口地址,也就是无法直接被虚拟机使用。当虚拟机运行时,需要从常量池中获得对应的符号引用,再在类创建时或运行时解析,翻译到具体的内存地址之中。

第三:访问标志:用于识别类或者接口层次的访问信息。
第四:类索引,父类索引与接口,所以集合:用于确定类的继承关系。
第五:字段表集合:用于描述接口或者类中声明的变量。

备注:字段表集合和方法表集合的存储结构:访问标志,名称索引,描述符索引,属性表集合。其中名称索引和描述符索引是对常量池的应用。

第七:属性表集合:用于描述某些场景专有的信息。

变量赋值一共有两种方式:
对于非静态变量来说。它的赋值是在实例构造器方法中进行的。
而对于那边来说。第一种方法是在类构造器方法中进行赋值;第二种是使用Constantvalue属性。


Boy-20180721

相关文章

  • 第六章类文件结构

    class文件是一组以八字节为基础单位的二进制流,class文件格式采用c语言的伪结构来存储数据,它一共有两种数据...

  • 第六章 类文件结构

    本篇只做一些基本的命令行介绍,准备入坑class文件的小白可以看看。因字节码命令太多,本篇只介绍用到的字节码命令。...

  • 第六章 类文件结构

    2、无关性的基石 3、Class类文件的结构 任意一个有效的类或接口所应当满足的格式称为“Class文件格式”,实...

  • 《深入理解Java虚拟机-JVM高级特性与最佳实践》学习总结(第

    第六章 类文件结构 6.1 Class文件 Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照...

  • 类文件结构【Class类文件的结构】

    概述 任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来,类或接口并不一定都得定义在文件里(如类或...

  • 类文件结构

    本文大体讲一下结构,着重从理解层面看,就是当时我最难理解的地方讲,并不会深入的讲解某一块的具体结构信息,如果要看结...

  • 类文件结构

    class文件结构 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Cla...

  • 类文件结构

    类的二进制文件中的主要结构 无符号数和表 u1,u2,u4,u8。表由无符号数和表构成 魔数 1-4字节:确定文件...

  • 类文件结构

    概述 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目按照顺序紧地排列在CLass文件之中,中间没...

  • 类文件结构

    一、概述 在计算机商业领域中,不同的硬件体系结构和不同的操作系统长期并存是必然的结果,所以Java 提出了“Wri...

网友评论

      本文标题:第六章类文件结构

      本文链接:https://www.haomeiwen.com/subject/ojahmftx.html