转载至: https://www.jb51.net/books/61748.html
下载链接: 点我一键跳转到 下载链接
下载声明: 本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
《Java虚拟机规范 (Java SE 7 中文版)》是一份根据《Java Virtual Machine Specification (Java SE 7)》翻译的、非官方的、以Open Document形式发布的文档。
本译文由ItEye社区三位水友IcyFenix、wupuyuan、langyu合作完成,我们的翻译工作完全基于技术研究目的,任何人也都可以在以技术研究为目的前提下任意阅读、传播、使用这份文档。但没有得到原文作者和译者授权,不得用于商业出版。
《Java虚拟机规范》并非某一款虚拟机实现的说明书,它是一份保证各个公司的Java虚拟机实现具备统一外部接口的契约文档,书中的概念和细节描述曾经与Sun的早期虚拟机的实现高度吻合,但是随着技术的发展,高性能虚拟机真正的细节实现方式已经渐渐与虚拟机规范所描述的内容产生了越来越大的差距。
《java虚拟机规范(java se 7版)》
译者序
前言
第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
沙发 来自 单位 2020-07-31 10:12 回复 我的