JVM笔记9-Class类文件结构】的更多相关文章

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步. 实现语言无关性的基础是虚拟机和字节码存储格式.Java虚拟机不和包括Java在内的任何语言绑定,只与"Class文件"这种特定的二进制文件所关联,Class文件中包含了Java虚拟机指令集合符号表以及若干其它辅助信息.Java虚拟机作为一个通用的.机器无关的执行平台,任何其他语言都可以将其作为语言的产品交付媒介. Java虚拟机提供的语言无关性: Class文件是一组以8位字节为基础单位的二进制…
类文件结构 Class 文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部都是程序运行的必要数据. 根据 Java 虚拟机规范的规定,Class 文件格式采用一种类似于 C 语言结构体的伪结构来存储,这种伪结构中只有两种数据类型:无符号数和表. 无符号数属于基本数据类型,以 u1.u2.u4.u8 来分别代表 1.2.4.8 个字节的无符号数. 表是由多个无符号数或其他表作为…
类文件(.class)是搞java的都非常熟悉的文件,一般我们在编写java之后文件之后,首先通过javac工具生成.class类字节码文件,而后在执行程序的时候由虚拟机加载执行.那么为什么要生成.class呢?直接执行.java文件不行吗?下边我们先来大概了解一下java编译执行流程. 一.class文件存在的意义 1.解释执行和编译执行 由于要想解释为什么要生成.class,就需要搞清楚解释执行和编译执行的区别,所以首先我们来普及一个知识点: 编译程序.解释程序.汇编程序是3种语言处理程序.…
Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙.当遇到需要占用超过8位字节以上空间的数据项目时,会按照高位在前的方式分割为多个8位字节进行存储 数据项目分为2种基本数据类型(以及由这两种基本数据类型组成的集合): 1,无符号数,以u1.u2.u4.u8分别代表1个字节.2个字节.4个字…
JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁盘的形式存在. Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全都是程序运行的必要数据.当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8个字节进行存储.Class文…
1.Class类文件结构  Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件之中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在. 当遇到需要占用 8 位字节以上空间的数据项时,则会按照高位在前(Big-Endian)的方式分割成若干个 8 位字节进行存储. 根据 Java 虚拟机规范的规定,Class 文件格式采用一种类似于 C  语言结构体的伪结构来存储数据,这种伪结构…
java虚拟机具有语言无关系,它只和“class文件“这种特定的二进制文件格式绑定. 不同语言的编译器将对应的程序编译成字节码文件(*.class),送给jvm执行. class文件本质上就是一张表,由各类数据项构成. 2.1.魔数(是否可以被虚拟机执行)和class文件版本 2.2.常量池(两大类常量:字面量与符号引用) 2.3.访问标志(识别访问信息) 2.4.类索引.父类索引和接口索引集合 2.5.字段表集合 2.6.方法表集合 ——————————————————————————————…
在之前的笔记中记录过,Java程序变成可执行文件的步骤是:源代码-->经过编译变成class文件-->经过JVM虚拟机变成可执行的二进制文件.因此,为了对JVM执行程序的过程有一个好的了解,我们需要先明白class文件到底是什么东西,它里面有那些信息以及如何存储的. Class类文件结构 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑排列在Class文件中.当遇到需要占用超过8位字节的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储. Class文…
一直不太搞得明确jvm究竟是如何进行类载入的,在看资料的过程中迷迷糊糊.在理解类载入之前,首先看看java的类文件结构究竟是如何的,都包含了哪些内容. 最直接的參考当然是官方文档:The Java® Virtual Machine Specification 我写了一个最简单的java程序.依据这个程序来分析一下.class文件里究竟都存了些什么. java程序: class Par { public int x = 5; public void f(){ System.out.println(…
JVM学习04:类的文件结构 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 类的文件结构知识要点Xmind梳理…