Class文件:
每个文件前4个字节都被称为它的魔数(magic number):0xCAFEBABE。如果一个文件不是以这个开头,那就肯定不是java class文件。
注:CAFEBABE是咖啡品牌Peet's Coffee深受欢迎的一个产品。
版本号确定了特定的class文件格式,只有给定了主版本号和一系列次版本号后,虚拟机才弄呢狗狗读取class文件。
例:45.0:主版本号45,次版本号0
如果javac命令制定 -target 1.2 标志。1.2的编译器将产生版本号为46.0的class文件。
java虚拟机第二版修改了对class文件主、次版本号的解释,class文件的主版本号与java平台主版本发布的版本号保持一致,次版本号与特定主平台发布版的各发布办有关。
class文件中,魔数和版本号后面是常量池,包含了类和接口相关的常量,存储了文字字符串、final变量值、;类名和方法名的常量。
每个常量池入口都从一个长度为一个字节的标志开始,这个标志列出了该位置的常量类型。
动态链接的java程序中,常量池还可以容纳一下几种符号引用:
类和接口的权限定名
字段的名称和描述符;
方法的名称和描述符;
字段是类或接口的实例变量或者类变量,字段的描述符是一个只是字段的类型的字符串。
方法的描述符也是一个字符串,指示方法的返回值和参数的数量、顺序、类型。
由于class文件并不包含其内部组建最终内存布局的信息,因此,类、字段和方法并不能被class文件中的字节码直接引用;
java虚拟机从常量池获得符号引用,然后再运行时解析引用项的实际地址。
分享到:
相关推荐
第1章 :简单地介绍了Java虚拟机的历史并吹捧了←_← 一下Java的平台无关性(一次编译,到处运行);... 第6章:定义了Java虚拟机指令集; 第7章:提供了一张以操作码值为索引的Java虚拟机操作码助记表。
深入 Java 虚拟机.pdf Java 虚拟机(Java Virtual Machine,JVM)是 Java 语言的 runtime 环境,是 Java 程序执行的核心组件。它提供了一个平台无关的环境,允许 Java 程序在不同的操作系统和硬件平台上运行。 一...
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
读书笔记:java 虚拟机,深入理解Java虚拟机 JVM高级特性与最佳实践
**Android虚拟机ART详解** Android运行环境的核心组成部分之一就是虚拟机,从早期的Dalvik到现在的Android RunTime(ART),这一进化过程极大地提升了Android应用的性能和效率。本文将深入探讨ART的工作原理、优势...
技术部研发团队技术干货分享:Java虚拟机.
资源名称:Scala程序设计:Java虚拟机多核编程实战资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
### Java虚拟机分析与优化关键知识点 #### 一、Java虚拟机基础知识 1. **Java虚拟机(JVM)概述** - Java是一种面向对象的编程语言,具有“一次编写,到处运行”的特点。 - Java代码通过编译器转换为字节码,由...
读书笔记:Java虚拟机从入门到精通
Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础知识学习:包括JVM虚拟机、对象模型等Java基础知识代码案例Java基础...
### 深入理解Android(二):Java虚拟机Dalvik #### 一、背景与研究目的 在深入了解Dalvik虚拟机之前,我们先来探讨一下背景与研究目的。随着移动设备性能的不断提高,Android系统因其开放性而吸引了众多开发者...
2. 字节码验证:Java虚拟机对字节码进行验证,检查其是否符合Java虚拟机的规范。 3. 字节码执行:Java虚拟机执行字节码,通过解释或编译来执行字节码指令。 4.垃圾回收:Java虚拟机的垃圾回收机制可以自动回收不再...
读书笔记:java虚拟机详解jvm从入门到精通
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
标题:Java虚拟机的分析与研究.pdf 描述:该文件是一篇关于Java虚拟机分析与研究的论文,文章编号为5828,中图分类号为TP3:17,文献标识码为B。论文详细讨论了Java虚拟机技术,包括虚拟机的定义、功能、重要性以及在...
java虚拟机OutOfMemoryError:Java heap space堆dump文件,可以直接用来分析。
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
1. Java虚拟机的裁减和安装:Java虚拟机需要裁减和安装到ARM平台上,以满足嵌入式设备的资源限制。 2. Java核心类库的裁减和安装:Java核心类库需要裁减和安装到ARM平台上,以满足嵌入式设备的资源限制。 3. Java...
第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:Class文件格式; 第五章:加载、链接与初始化
1. **Java虚拟机概述**:Java虚拟机是Java平台的核心组件,它负责解析和执行Java字节码,为程序提供了一个跨平台的运行环境。理解JVM的工作原理有助于优化代码并解决各种运行时问题。 2. **内存模型**:书中详细...