CHAPTER 3
java虚拟机结构
这本手册指定了一个抽象的机器。它不是任何一份描述一个特殊实现了的java虚拟机的文档,当然也不包括SUN公司的微系统。
为了正确的实现java虚拟机,你仅仅只需要能够阅读类文件格式和正确的执行其中的操作。实现java虚拟机细节不是该规范的一部分,如果那样会限制java虚拟机实现者的创造性。比如,运行时数据区域在内存中的布局,GC的算法设计,以及任何内部的java虚拟机指令优化都取决于具体的实现者。
3.1 类文件格式
编译过的代码能够被java虚拟机执行意味着该编码是一种和硬件以及操作系统相对独立的二进制格式,通常以文件形式存储,既class后缀的文件格式。这种类文件精确定义了一种类或者接口的说明,包括一些可以很好的在特殊平台上执行的目标文件的字节码顺序的详细信息。(太拗口了....)
3.2 数据类型
这部分我想画一个流程来说明规范中如何区分我们所知的数据类型的。
/ 1.1 integer types -->byte,short,int,long,char
/ 1,numeric types -- 1.2 floating-point types -->float,double
I primitive types -- 2,boolean type -->truth/false
\ 3,the returnAddress type -->The values of the returnAddress type are pointers to the opcodes of Java virtual machine instructions.
II reference types -->JVM's jsr,ret,and jsr_w instructions;There are three kinds of reference types: class types, array types, and interface types
3.3 简单数据类型
PS:不知道规范是这样定义的,课本上的描述多少有点出入。
java虚拟机所支持的简单数据类型包括数值类型(numeric type)、boolean类型(boolean type)和返回地址类型(returnAddress type)。数值类型包括整型(integral types)和浮点型(floating-point types)。
整型如下:
- byte,8位有符号二进制补码整数。
- short,16位有符号二进制补码整数。
- int,32位有符号二进制补码整数。
- long,64位有符号二进制补码整数。
- char,16位无符号整数代表Unicode编码。
浮点型如下:
- float,其值为folat数集的任何一个元素,或者,如果支持,也可以是float扩展数集。
- double,其值为double数集的任何一个元素,或者,如果支持,也可以是double扩展数集。
布尔类型的值:true/false。
返回地址值:returnAddress类型的值是指向java虚拟机指令的操作码。在简单数据类型中仅仅只有returnAddress类型是不直接和java编程语言相关联的类型。
3.3.1 整数类型和值
该部分讲解了整数类型的取值范围。对于学习语言来说,应该熟悉。
《java解惑》之**
谜题3:长整数
谜题4:初级问题
谜题5:十六进制的趣事
谜题9:半斤
谜题10:八两
这些变态的名字是怎么取出来的?看看书才知道有些问题出现的莫名其妙,却是那么引人深思。
分享到:
相关推荐
第3章:介绍如何将Java语言编写的程序转换为虚拟机指令集; 第4章:定义class文件格式。它是一种与硬件和操作系统无关的二进制格式,用来表示编译后的类和接口; 第5章:定义了Java虚拟机启动以及类和接口的加载...
第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局 部变量、控制结构、算术运算、参数接收、方法调用、数组、操作数栈、异常处理、同步与注解等;第4章深入分析用来表示编译后的类和接口的...
三、Java 虚拟机的体系结构 Java 虚拟机的体系结构由多个子系统组成,包括类加载器子系统、执行引擎、数据区等。类加载器子系统负责加载程序中的类型(类和接口),并赋予唯一的名字。执行引擎负责执行被加载类中...
java虚拟机规范,高清PDF版本,含有目录结构:第一章:引言; 第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java... 第三章:为java虚拟机编译; 第四章:Class文件格式; 第五章:加载、链接与初始化
"深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)-周志明"这本书提供了对JVM的深入解析,包括内存管理、垃圾收集、性能优化等多个方面,是学习和提升JVM技能的重要资源。无论你是Java新手还是经验丰富的开发者...
第3章 安全 3.1 为什么需要安全性 3.2 基本沙箱 3.3 类装载器体系结构 3.4 class文件检验器 3.4.1 第一趟:class文件的结构检查 3.4.2 第二趟:类型数据的语义检查 3.4.3 第三趟:字节码验证 ...
第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局部变量、控制结构、算术运算、参数接收、方法调用、数组、操作数栈、异常处理、同步与注解等;第4章深入分析用来表示编译后的类和接口的...
在翻译JVM规范的过程中,三位译者周志明、吴璞渊和冶秀刚为了提高作品的准确性和可读性,使用了通俗易懂的语言向读者介绍Java虚拟机的约束和运作原理。对于一些专业名词和技术术语,译者们保留了原文并在读者可能...
第3章 安全 第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12章 整数运算 第13章 逻辑运算 第14章 浮点...
《深入JAVA虚拟机 不那么完美的第二版》这本书虽然在印刷上可能存在一些小瑕疵,但这并不影响我们从中汲取宝贵的Java虚拟机(JVM)知识。Java虚拟机是Java平台的核心组成部分,它负责执行Java程序,提供了跨平台的...
第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局部变量、控制结构、算术运算、参数接收、方法调用、数组、操作数栈异常处理、同步与注解等。第4章深入分析了用来表示编译后的类和接口的...
Sun公司的Java虚拟机规范中文版 第一章 引言 第二章 JAVA的概念 第三章 JAVA虚拟机的结构 第四章 Class文件格式 第五章 常数池解析 第六章 JAVA虚拟机指令集 第七章 为JAVA虚拟机编译
随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置...
第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了...
自1999年《Java虚拟机规范(第二版)》发布以来,尽管JDK在版本5时进行了重大更新,但直到2011年7月,《Java虚拟机规范(JavaSE7版)》才正式发布。这标志着JVM技术的持续演进和标准化进程的重要里程碑。随着时间...
《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...
在Java虚拟机第二版中,我们可以深入探讨以下几个关键知识点: 1. **字节码与类加载机制**:Java程序编译后生成的是.class文件,里面包含的是字节码。JVM通过类加载器将这些字节码加载到内存中,进行验证、准备、...
### 学习深入理解Java虚拟机的前几章笔记 #### JVM内存模型 Java虚拟机(JVM)的内存模型主要分为两大类:线程共享区和线程私有区。 ##### 线程共享区 - **堆**:是所有线程共享的内存区域,在这里存放着对象实例...