
《Java虚拟机规范》是2013年12月15日机械工业出版社出版的图书,作者是Tim Lindholm Fr来自ank Yellin二打评尼众硫自。
- 中文名称 Java虚拟机规范
- 外文名称 The Java Virtual Machine Specification, Java SE 7 Edition
- 作者 Tim Lindholm Frank Yellin
- 出版社 机械工业出版社
- 页数 316 页
编辑推荐
来自 Oracle官方发布,Oracle资深专家撰写,国内资深Java技术专家翻译,Amazon畅销书
基于**Java SE 7,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和J深记了ava语言实现细节的必读之作
内容简介
本书是Java领域最重要和最权威的著作之一,由Oracle官方360百科发布,基于Java SE 7,对*的Java虚拟机规范进行了完整且详细的讲解,是深度了解J就均湖著专件周队ava虚拟机实现细节的必读之作。由国内几位资深的Java技术专家联袂翻译。
全书共7章,第1章从宏观的角度介绍了Jav还斯渐燃a虚拟机与Java的关系与发展历程。第2章概览了J第别除煤还八办害ava虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区举交真上坏动存士朝构式、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局部变量、控制结构、算术运卷略由尽盟用础算、参数接收、方法调用、数组、操作数栈异常处理、同步与注解等。第4章深入分析了用来表示编译后的类和接口的class文件格式,主要包括ClassFile结构、描述符与签名、常量池、字段、方法、属性、代码约束与cla记光血施边目露西ss文件校验等。第5章定义了Java虚拟机启动以及类和接口的加载、链或独内封季义服接和初始化过程。第转罪么兵6章阐释并列举了Java虚拟机指令集。第7独章提供了一张以操作码值为索引的Java虚拟机操作码助记符表。
图书目录
目 录
译者序
前言
第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 retu示势洋先殖另钟乙距rnAddress类型和值8
360百科 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 局部变量表1度矛加减倍李究套3
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 字节码指令集简介2与氧步条粒括0
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章 Ja免明设充曲权va虚拟机编译器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
作者简介
Tim Lindholm?资深Java虚拟机高级架构师,Java编程语言的主要贡献者之一,Sun公司杰出工程师,目前主要负责移动设备上的Java应用。在到Sun公司工作之前,他已经在美国阿贡国家实验室和Quintus公司从事与虚拟机和运行时系统相关的工作。
Frank Yellin?Sun公司高级工程师,Java项目元老级成员。最近十余年中,他都从事解释型及编译型语言的运行时系统方面的工作。在到Sun公司工作之前,他在Lucid公司从事Common Lisp编译器相关的工作。
Gilad Bracha?Newspeak编程语言的创建者,Sun公司杰出工程师。在到Sun公司工作之前,他在Animorphic Smalltalk System公司从事Strongtalk语言相关的工作。
Alex Buckley?Oracle公司Java编程语言和Java虚拟机规范负责人。