美文网首页
类文件结构

类文件结构

作者: hlchengzi | 来源:发表于2019-03-26 13:42 被阅读0次

java虚拟机两个特点:平台无关系(一次编译到处运行),语言无关性(语言无关性的基础任然是虚拟机和字节码存储格式,虚拟机只和".Class文件"这种特定的二进制文件格式所关联)
基于安全考虑,java虚拟机规定要求在class文件中使用许多强制性的语法和结构化约束。Class文件是一组以8位字节为基础的二进制流,一般采用伪结构体
(里面只有两种数据类型:无符号数和表),无符号数u1,u2,u4,u8来分别代表一个字节,两个字节。。。表是由许多无符号数或者表作为数据项构成的复合数据类型。习惯以_info结尾。
Class文件的前四个字节被称为魔数,唯一作用就是确定这个文件是不是一个能被虚拟机接受的Class文件。0xCAFEBABE,紧接着的四个字节存储的是class文件的版本号,紧接着主次版本号后面的就是常量池入口,常量池可以理解为Class文件当中的资源仓库,它是Class文件结构当中与其他项目关联最多的数据类型,占内存最大,而且也是Class文件中第一个出现的表类型数据项目
常量池里面主要放两大类常量:字面量和符号引用
字面量比较接近java语言层面的常量概念,如文本字符串和声明为final的常量值等,符号引用则属于编译原理方面的概念,包括下面三方面常量:1,类和接口的全限定名。2,字段(类和接口中声明的变量)的名称和描述符。3,方法的名称和描述符,java代码在进行javac编译的时候,虚拟机加载Class文件的时候进行动态链接。当虚拟机运行时,需要从常量池获得对应得符号引用,再在创建得时或解析,翻译到具体得内存地址中。常量池得每一项常量都是一个表,这14中表都有一个共同的特点,就是最开始的一位是一个u1类型的标志位,代表当前的这个常量属于那种变量类型。在常量池结束之后,紧接着的两个字节代表访问标志,这个标志用于识别一些类或者接口层次的访问信息,包括:这个类Class是类还是接口

相关文章

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

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

  • 类文件结构

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

  • 类文件结构

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

  • 类文件结构

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

  • 类文件结构

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

  • 类文件结构

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

  • 类文件结构

    语言无关性 JAVA虚拟机与Class文件关联,与具体的语言没关系。任何语言只要能编译成Cla...

  • 类文件结构

    语言无关性:jvm和字节码格式 jvm不和java在内的任何语言绑定,他只和“class”这种特定的二进制格式文件...

  • 类文件结构

    摘抄: 陈树义 Java技术精选 -各个语言的编译器吧文件编译成字节码,jvm把字节码解释给操作系统,或者是编译成...

  • 类文件结构

    前言 本文是《深入理解Java虚拟机》第6章的部分知识点,这一章正如作者所说,对数据结构的讲解确实枯燥,对于失眠治...

网友评论

      本文标题:类文件结构

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