当前位置:首页 > 工业技术
Java虚拟机规范

Java虚拟机规范PDF格式文档图书下载

工业技术

图书介绍
标签:虚拟

第一章 引言 1

1.1 一点历史 1

1.2 Java虚拟机 1

1.3 各章概述 2

第二章 Java概念 3

2.1 Unicode 3

2.2 标识符 3

2.3 文字 4

2.4 类型和值 4

2.4.1 基本类型和值 4

2.4.2 整型值上的操作符 5

2.4.3 浮点值上的操作符 5

2.4.4 boolean值上的操作符 5

2.4.5 引用类型、对象和引用值 6

2.4.6 类Object 6

2.4.7 类String 6

2.4.8 对象上的操作符 6

2.5 变量 6

2.5.1 变量的初始值 7

2.5.2 变量具有类型,对象具有类 8

2.6 转换和提升 8

2.6.1 等同转换 9

2.6.2 放宽基本转换 9

2.6.3 缩窄基本转换 9

2.6.4 放宽引用转换 10

2.6.5 缩窄引用转换 10

2.6.6 赋值转换 10

2.6.7 方法调用转换 11

2.6.8 类型转换 11

2.6.9 数值提升 12

2.7 名称和包 12

2.7.1 名称 12

2.7.2 包 12

2.7.3 成员 13

2.7.4 包成员 13

2.7.5 类类型的成员 13

2.7.6 接口类型的成员 13

2.7.7 数组类型的成员 13

2.7.8 限定名称和访问控制 14

2.7.9 完整限定名称 14

2.8 类 15

2.8.1 类名称 15

2.8.2 类修辞符 15

2.8.3 超类和子类 15

2.8.4 类成员 15

2.9 域 16

2.9.1 域修饰符 16

2.9.2 域的初始化 17

2.10 方法 17

2.10.1 形式函数 17

2.10.2 签名 17

2.10.3 方法修饰符 17

2.11 静态初始化函数 18

2.12 构造函数 18

2.13 接口 18

2.13.1 接口修饰符 19

2.13.2 超接口 19

2.13.3 接口成员 19

2.13.4 接口(常数)域 19

2.13.5 接口(抽象)方法 20

2.13.6 接口中的覆盖、继承和重载 20

2.14 数组 20

2.14.1 数组类型 20

2.14.2 数组变量 21

2.14.3 数组创建 21

2.14.4 数组访问 21

2.15 异常 21

2.15.1 引起异常的原因 22

2.15.2 处理异常 22

2.15.3 异常层次 23

2.15.4 类Exception和RuntimeException 24

2.16 执行 25

2.16.1 虚拟机启动 25

2.16.2 装载 26

2.16.3 链接:检验、准备和解析 27

2.16.4 初始化 28

2.16.5 详细的初始化过程 29

2.16.6 新的类实例的创建 30

2.16.7 类实例的终止 31

2.16.8 类和接口的终止和卸载 32

2.16.9 虚拟机退出 32

2.17 线程 32

第三章 Java虚拟机的结构 35

3.1 数据类型 35

3.2 基本类型和值 35

3.2.1 整型和值 36

3.2.2 浮点型和值 36

3.2.3 returnAddress类型和值 37

3.2.4 没有boolean类型 37

3.3 引用类型和值 37

3.4 字 37

3.5 运行期数据区 37

3.5.1 pc寄存器 37

3.5.2 Java栈 38

3.5.3 堆 38

3.5.4 方法区 39

3.5.5 常数池 39

3.5.6 自身方法栈 40

3.6 框架 40

3.6.1 局部变量 41

3.6.2 操作数栈 41

3.6.3 动态链接 41

3.6.4 正常的方法结束 41

3.6.5 不正常的方法结束 42

3.6.6 附加信息 42

3.7 对象的表示 42

3.8 特殊的初始化方法 42

3.9 异常 43

3.10 class文件格式 43

3.11 指令集概述 43

3.11.1 类型和Java虚拟机 44

3.11.2 装载和存储指令 46

3.11.3 运算指令 46

3.11.4 类型转换指令 47

3.11.5 对象创建和操纵 48

3.11.6 操作数栈管理指令 49

3.11.7 控制转移指令 49

3.11.8 方法调用和返回指令 49

3.11.9 抛出和处理异常 50

3.11.10 实现finally 50

3.11.11 同步 50

3.12 公共设计,私有实现 50

第四章 class文件格式 51

4.1 ClassFile 51

4.2 完整限定类名称的内部形式 54

4.3 描述符 54

4.3.1 语法记号 55

4.3.2 域描述符 55

4.3.3 方法描述符 56

4.4 常数池 56

4.4.1 CONSTANT_Class 57

4.4.2 CONSTANT_Fieldref,CONSTANT_Methodref和CONSTANT_InterfaceMethodref 58

4.4.3 CONSTANT_String 59

4.4.4 CONSTANT_Integer和CONSTANT_Float 59

4.4.5 CONSTANT_Long和CONSTANT_Double 60

4.4.6 CONSTANT_NameAndType 61

4.4.7 CONSTANT_Utf8 62

4.5 域 63

4.6 方法 64

4.7 属性 66

4.7.1 定义和命名新属性 66

4.7.2 SourceFile属性 67

4.7.3 ConstantValue属性 67

4.7.4 Code属性 68

4.7.5 Exceptions属性 70

4.7.6 LineNumberTable属性 71

4.7.7 LocalVariableTable属性 72

4.8 对Java虚拟机代码的约束 73

4.8.1 静态约束 73

4.8.2 结构约束 75

4.9 class文件的检验 77

4.9.1 检验进程 78

4.9.2 字节码检验器 79

4.9.3 长整数和双精度数 81

4.9.4 实例初始化方法和新创建的对象 81

4.9.5 异常处理者 82

4.9.6 异常和finally 82

4.10 Java虚拟机和class文件格式的限制 84

第五章 常数池解析 85

5.1 类和接口解析 86

5.1.1 不由类装载器装载的当前类或接口 86

5.1.2 由类装载器装载的当前类或接口 88

5.1.3 数组类 89

5.2 域和方法解析 90

5.3 接口方法解析 90

5.4 字符串解析 90

5.5 其他常数池项的解析 91

第六章 Java虚拟机指令集 92

6.1 假定:“必须”的含义 92

6.2 保留操作码 92

6.3 虚拟机错误 92

6.4 Java虚拟机指令集 93

第七章 为Java虚拟机编译 183

7.1 范例格式 183

7.2 常数、局部变量和控制构造的使用 184

7.3 运算 188

7.4 访问常数池 189

7.5 更多控制范例 190

7.6 接收参数 193

7.7 调用方法 194

7.8 处理类实例 196

7.9 数组 198

7.10 编译开关 200

7.11 对操作数栈的操作 202

7.12 抛出和处理异常 203

7.13 编译finally 207

7.14 同步 210

第八章 线程和锁 212

8.1 术语和框架 212

8.2 执行顺序和一致性 213

8.3 有关变量的规则 214

8.4 Double和Long变量的非原子处理 215

8.5 有关锁的规则 215

8.6 有关锁和变量的交互作用的规则 215

8.7 有关易变变量的规则 216

8.8 先见存储操作 216

8.9 讨论 217

8.10 范例:可能的交换 217

8.11 范例:无序写 220

8.12 线程 222

8.13 锁和同步 222

8.14 等待集和通知 222

第九章 优化 224

9.1 通过重写动态链接 224

9.2 _quick伪指令 224

第十章 操作码的操作码助记符 247

查看更多关于Java虚拟机规范的内容

相关书籍
作者其它书籍
返回顶部