首页

《Java虚拟机规范》PDF版本下载

标签:jvm,ebook,class文件格式,虚拟机结构,加载、链接与初始化     发布时间:2016-08-30   
  • 云盘下载:
  • [提取码:0000]
  • 本地下载:
       ( 需积分:2  )

一、目录简介

《Java虚拟机规范》PDF版本下载

目录

译者序

前言

第2版前言

第1版前言

第1章 引言1
1.1   简史1
1.2   Java虚拟机2
1.3   各章节摘要2
1.4   说明3

第2章 Java虚拟机结构4
2.1   class文件格式4
2.2   数据类型5
2.3   原始类型与值5
2.3.1 整数类型与整型值6
2.3.2 浮点类型、取值集合及浮点值6
2.3.3 returnAddress类型和值8
2.3.4 boolean类型8
2.4   引用类型与值9
2.5   运行时数据区9
2.5.1 pc寄存器9
2.5.2 Java虚拟机栈9
2.5.3 Java堆10
2.5.4 方法区11
2.5.5 运行时常量池11
2.5.6 本地方法栈11
2.6   栈帧12
2.6.1 局部变量表13
2.6.2 操作数栈13
2.6.3 动态链接14
2.6.4 方法正常调用完成14
2.6.5 方法异常调用完成15
2.7   对象的表示15
2.8   浮点算法15
2.8.1 Java虚拟机和IEEE 754中的浮点算法15
2.8.2 浮点模式16
2.8.3 数值集合转换16
2.9   特殊方法17
2.10  异常18
2.11  字节码指令集简介20
2.11.1 数据类型与Java虚拟机21
2.11.2 加载和存储指令23
2.11.3 算术指令23
2.11.4 类型转换指令24
2.11.5 对象创建与操作26
2.11.6 操作数栈管理指令26
2.11.7 控制转移指令27
2.11.8 方法调用和返回指令27
2.11.9 抛出异常28
2.11.10 同步28
2.12  类库28
2.13  公有设计,私有实现29

第3章 Java虚拟机编译器30
3.1   示例的格式说明30
3.2   常量、局部变量和控制结构的使用31
3.3   算术运算35
3.4   访问运行时常量池35
3.5   更多控制结构示例36
3.6   接收参数39
3.7   方法调用39
3.8   使用类实例42
3.9   数组43
3.10  编译switch语句45
3.11  使用操作数栈46
3.12  抛出异常和处理异常47
3.13  编译finally语句块50
3.14  同步53
3.15  注解54

第4章 class文件格式55
4.1    ClassFile结构56
4.2    各种内部表示名称60
4.2.1  类和接口的二进制名称60
4.2.2  非全限定名60
4.3    描述符和签名61
4.3.1  语法符号61
4.3.2    字段描述符61
4.3.3 方法描述符63
4.3.4 签名63
4.4   常量池66
4.4.1 CONSTANT_Class_info结构67
4.4.2 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_Interface Methodref_info结构67
4.4.3 CONSTANT_String_info结构69
4.4.4 CONSTANT_Integer_info和CONSTANT_Float_info结构69
4.4.5 CONSTANT_Long_info和CONSTANT_Double_info结构70
4.4.6 CONSTANT_NameAndType_info结构71
4.4.7 CONSTANT_Utf8_info结构72
4.4.8 CONSTANT_MethodHandle_info结构74
4.4.9 CONSTANT_MethodType_info结构74
4.4.10 CONSTANT_InvokeDynamic_info结构75
4.5   字段75
4.6   方法77
4.7   属性80
4.7.1 自定义和命名新的属性81
4.7.2 ConstantValue属性81
4.7.3 Code属性82
4.7.4 StackMapTable属性85
4.7.5 Exceptions属性91
4.7.6 InnerClasses属性92
4.7.7 EnclosingMethod属性94
4.7.8 Synthetic属性94
4.7.9 Signature属性95
4.7.10 SourceFile属性96
4.7.11 SourceDebugExtension属性96
4.7.12 LineNumberTable属性97
4.7.13 LocalVariableTable属性98
4.7.14 LocalVariableTypeTable属性99
4.7.15 Deprecated属性101
4.7.16 RuntimeVisibleAnnotations属性101
4.7.17 RuntimeInvisible Annotations属性105
4.7.18 RuntimeVisibleParameter Annotations属性106
4.7.19 RuntimeInvisibleParameter Annotations属性107
4.7.20 AnnotationDefault属性108
4.7.21 BootstrapMethods属性108
4.8    格式检查110
4.9    Java虚拟机代码约束110
4.9.1  静态约束110
4.9.2  结构化约束113
4.10   class文件校验115
4.10.1  类型检查验证116
4.10.2  类型推导验证178
4.11  Java虚拟机限制184

第5章 加载、链接与初始化186
5.1    运行时常量池186
5.2    虚拟机启动188
5.3    创建和加载188
5.3.1 使用引导类加载器来加载类型190
5.3.2 使用用户自定义类加载器来加载类型190
5.3.3 创建数组类191
5.3.4 加载限制191
5.3.5 从class文件表示得到类192
5.4    链接193
5.4.1 验证194
5.4.2 准备194
5.4.3 解析195
5.4.4 访问控制201
5.4.5 方法覆盖201
5.5    初始化202
5.6    绑定本地方法实现203
5.7    Java虚拟机退出203

第6章 Java虚拟机指令集204
6.1    设定:“必须”的含义204
6.2    保留操作码204
6.3    虚拟机错误205
6.4    指令描述格式205
6.5    指令集描述207

第7章 操作码助记符293
附录A Limited License Grant300

��