zoukankan      html  css  js  c++  java
  • 【Java虚拟机结构(第1部分)数据类型】摘要

    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类型三类。

    当中数值类型又分为整型类型和浮点类型两种

    整数类型包含:

    • byte类型:值为8位有符号二进制补码整数,默认值为零。
    • short类型:值为16位有符号二进制补码整数,默认值为零。
    • int类型:值为32位有符号二进制补码整数,默认值为零。
    • long类型:值为64位有符号二进制补码整数。默认值为零。
    • char类型:值为使用16位无符号整数表示的、指向基本多文本平面(Basic Multilingual Plane,BMP)的Unicode值,以UTF-16编码,默认值为Unicode的null值('u0000')。

    浮点类型包含:

    • float类型:值为单精度浮点数集合中的元素,或者(假设虚拟机支持的话)是单精度扩展指数(Float-Extended-Exponent)集合中的元素。默认值为正数零。
    • double类型:取值范围是双精度浮点数集合中的元素。或者(假设虚拟机支持的话)是双精度扩展指数(Double-Extended-Exponent)集合中的元素。默认值为正数零。

    布尔类型包含:

    • boolean类型:取值范围为布尔值true和false,默认值为false。

    returnAddress类型包含:

    • returnAddress类型:表示一条字节码指令的操作码(Opcode)。在全部的虚拟机支持的原始类型之中,仅仅有returnAddress类型是不能直接Java语言的数据类型相应起来的。

    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实现各种内部排序算法
    Java实现堆排序(大根堆)
    Java对象的序列化和反序列化
    Java实现链式存储的二叉查找树(递归方法)
    337. House Robber III(包含I和II)
    318. Maximum Product of Word Lengths
    114. Flatten Binary Tree to Linked List
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    96. Unique Binary Search Trees(I 和 II)
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10683110.html
Copyright © 2011-2022 走看看