【Java虚拟机结构(第1部分)数据类型】摘要

时间:2014-06-25 10:48:16   收藏:0   阅读:272

Java虚拟机规范(Java SE 7版)》作者:Tim Lindholm、Frank Yellin、Gilad Bracha、Alex Buckley 摘要:第二章 Java虚拟机结构(第1部分)

本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种被广泛使用的虚拟机实现。

2.1 Class 文件格式

编译后被Java虚拟机所执行的代码使用了一种平台中立(不依赖于特定硬件及操作系统的)的二进制格式来表示,并且经常(但并非绝对)以文件的形式存储,因此这种格式被称为Class文件格式。

2.2 数据类型

Java虚拟机可以操作的数据类型:原始类型(Primitive Types)和引用类型(Reference Types)。与之对应,也存在有原始值(Primitive Values)和引用值(Reference Values)两种类型的数值可用于变量赋值、参数传递、方法返回和运算操作

Java虚拟机是直接支持对象的(实例)

使用reference类型来表示对某个对象的引用

2.3 原始类型与值

Java虚拟机所支持的原始数据类型包括了数值类型布尔类型returnAddress类型三类。其中数值类型又分为整型类型和浮点类型两种

整数类型包括:

浮点类型包括:

布尔类型包括:

returnAddress类型包括:

2.3.1 整型类型与整型值

2.3.2 浮点类型、取值集合及浮点值

IEEE 754标准的内容不仅包括了正负带符号可数的数值(Sign-Magnitude Numbers),还包括了正负零正负无穷大和一个特殊的“非数字”标识(Not-a-Number,下文用NaN表示)。NaN值用于表示某些无效的运算操作,例如除数为零等情况。

顺序将会是:负无穷,可数负数、正负零、可数正数、正无穷。

浮点数中,正数零和负数零是相等的,但是它们有一些操作会有区别。例如1.0除以0.0会产生正无穷大的结果,而1.0除以-0.0则会产生负无穷大的结果。

NaN是无序的,对它进行任何的数值比较和等值测试都会返回false的比较结果。任何数字与NaN进行非等值比较都会返回true。

2.3.3 returnAddress类型和值

2.3.4 boolean类型

在Java语言之中涉及到boolean类型值的运算,在编译之后都使用Java虚拟机中的int数据类型来代替。

Java虚拟机直接支持boolean类型的数组,虚拟机的newarray指令可以创建这种数组,数组类型的访问与修改共用byte类型数组的baload和bastore指令。

2.4 引用类型与值

三种引用类型:类类型(Class Types)、数组类型(Array Types)和接口类型(Interface Types)。

数组类型还包含一个单一维度(即长度不由其类型决定)的组件类型(Component Type),一个数组的组件类型也可以是数组。多层最里面的类型是数组类型的元素类型(Element Type),必须上面三个类型之一。

引用类型的默认值是null。


【Java虚拟机结构(第1部分)数据类型】摘要,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!