第二章 jvm结构
这篇文档定义一个抽象的机器,而不说明java虚拟机的任何具体实现。
要正确的实现java虚拟机,就必须能够正确的读取class文件格式并执行文件内部指定的操作。为了不限制jvm实现者的创造力,jvm规范不定义任何实现细节。比如像,运行时数据区的内存布局、垃圾回收算法的使用以及虚拟机指令的内部优化等都留给实现者去判断完成。
2.1 class文件格式
被jvm执行的编译代码使用一种与硬件及操作系统无关的二进制形式来表示。通常(但不一定)存储在class文件中。class文件格式明确定义了类和接口的表示形式,包括像字节序等平台相关的细节(不同平台惯用的字节序不一样,只有强制定义才能做到平台无关性)。
2.2 数据类型
跟java编程语言类似,jvm操作两种类型的数据:原始类型和引用类型。与之对应,有原始值、引用值两种类型的值可以变量赋值、参数传递、方法返回和数值操作。
jvm希望几乎全部的类型检查在运行时前完成,通常这些检查由编译器完成而不用jvm自己来做。原始类型的数据不需要通过特殊标记或其他手段来在运行时确定他们的类型或者将它们与引用类型数据进行区分。jvm的每个指令都有固定的操作数数值类型,jvm根据这个来确定数值类型。例如,iadd、ladd、fadd和dadd这几个指令的作用都是对两个数值相加然后返回相加结果,但是它们各自的操作数分别是:int、long、float和double。
jvm明确支持对象。对象可以是动态分配的类实例也可以是数组。对一个对象的引用就是jvm中的引用类型。引用类型的值可以看做对象的指针。一个对象可以存在多个引用。对象通常通过引用类型的值进行操作、传输和测试
相关推荐
011-第二章-class文件结构课程简介 012-class文件的理解 013-class文件的格式 014-大小端模式(1) 014-大小端模式 015-class文件的数据结构 016-class文件基本信息-魔数 017-class文件基本信息-魔数起源以及利用 018-...
第二章 java概念 第三章 java虚拟机结构 第四章 class文件格式 第五章 常熟池解析 第六章 java虚拟机指令集 第七章 为java虚拟机编译 第八章 线程和锁 第九章 优化 第十章 操作码的操作码助记符
第二课 JVM运行机制简介 堆、栈、方法区等 JVM启动流程 内存模型和volatile实例 解释和编译运行的概念 介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。 第三课 常用JVM参数 堆的分配参数 ...
《How Tomcat Work 第二章 实例应用》深入解析 在深入探讨Tomcat工作原理之前,我们先要了解什么是Tomcat。Apache Tomcat是一款开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 规范,是...
在准备软件设计师考试的过程中,第二章“程序设计语言基础知识”是至关重要的部分,它涵盖了编程语言的基本概念、语法结构、程序执行原理以及常用编程范式等核心内容。本章的知识点广泛而深入,旨在帮助考生建立坚实...
**第二章**通过一个简单的例子介绍了JNI的基本使用方式,适用于初次接触JNI的新手。这一章通常会涵盖以下内容: 1. **基本概念** - 如何定义本地方法并告知JVM它们的存在。 - 如何生成JNI头文件,并基于此文件...
- **周志明**:担任全文统稿工作,并负责翻译前言和第1、2、6、7章,同时对第3、4、5章进行了校审。 - **吴璞渊**:负责第3章以及第4章的1至7节翻译。 - **冶秀刚**:负责第5章及第4章的9至11节翻译。 #### 六、...
3.4.2 第二趟:类型数据的语义检查 3.4.3 第三趟:字节码验证 3.4.4 第四趟:符号引用的验证 3.4.5 二进制兼容 3.5 java虚拟机中内置的安全特性 3.6 安全管理器和java api 3.7 代码签名和认证 ...
自1999年第二版发布以来,《Java虚拟机规范》已经历了多年的发展。随着Java语言和技术的进步,这份规范也不断更新以适应新的需求。例如,在JDK 5发布时,规范进行了重大更新,但在很长一段时间内并没有完整的新版本...
#### 第二章 平台无关 - **平台无关的概念**:Java的设计初衷是为了实现“一次编写,到处运行”的理念,即通过Java虚拟机使得Java程序可以在任何安装了JVM的操作系统上运行。 - **Java平台**:Java平台由Java...
### 第二章:数组 - 数组是一种固定长度的数据结构,用于存储同类型元素。 - 支持一维数组、二维数组等多维数组。 - 数组操作包括声明、初始化、访问和遍历等。 ### 第三章:面向对象程序开发 - **封装**:隐藏...
- **第二章**:详细阐述Java虚拟机的数据类型和格式。 - **第三章**:讲述Java虚拟机指令集的结构与功能。 - **第四章**:解释Java虚拟机的内存模型及其管理机制。 - **第五章**:讨论Java虚拟机的异常处理机制...
- **第二章**: 描述了Java虚拟机的基本架构,包括类文件格式、内存模型等。 - **第三章**: 详细介绍Java虚拟机的执行引擎,如栈帧、本地方法栈等。 - **第四章**: 深入探讨垃圾回收机制、内存分配策略等内容。 - **...