• Java虚拟机规范
21年品牌 40万+商家 超1.5亿件商品

Java虚拟机规范

全新正版 极速发货

41.51 5.3折 79 全新

库存10件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)蒂姆·林霍尔姆(Tim Lindholm) 等 著;爱飞翔 等 译

出版社机械工业出版社

ISBN9787111501596

出版时间2015-06

装帧平装

开本16开

定价79元

货号1201111984

上书时间2024-06-17

徐小智的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
蒂姆·林霍尔姆(Tim Lindholm),资深Java虚拟机高级架构师,Java编程语言的主要贡献者之一,曾是Sun公司杰出工程师,目前主要负责移动设备上的Java应用。在到Sun公司工作之前,他曾经在美国阿贡国家实验室和Quintus公司从事与虚拟机和运行时系统相关的工作。
弗兰克·耶林(Frank Yellin),曾是Sun公司高级工程师,Java项目元老级成员。最近十余年中,他都从事着解释型及编译型语言的运行时系统方面的工作。在到Sun公司工作之前,他在Lucid公司从事CommonLisp编译器相关的工作。
吉拉德·布拉查(Gilad Bracha),Newspeak编程语言的创建者,曾是Sun公司杰出工程师。在到Sun公司工作之前,他在AnimorphicSmalltalkSystem公司从事Strongtalk语言相关的工作。
亚历克斯·巴克利(Alex Buckley),Oracle公司Java编程语言和Java虚拟机规范负责人。

目录
  译者序
前言
第1章 引言
1.1 简史
1.2 Java虚拟机
1.3 各章节摘要
1.4 说明
1.5 反馈
第2章 Java虚拟机结构
2.1 class文件格式
2.2 数据类型
2.3 原始类型与值
2.3.1 整数类型与整型值
2.3.2 浮点类型、取值集合及浮点值
2.3.3 returnAddress类型和值
2.3.4 boolean类型
2.4 引用类型与值
2.5 运行时数据区
2.5.1 pc寄存器
2.5.2 Java虚拟机栈
2.5.3 Java堆
2.5.4 方法区
2.5.5 运行时常量池
2.5.6 本地方法栈
2.6 栈帧
2.6.1 局部变量表
2.6.2 操作数栈
2.6.3 动态链接
2.6.4 方法调用正常完成
2.6.5 方法调用异常完成
2.7 对象的表示
2.8 浮点算法
2.8.1 Java虚拟机和IEEE,754中的浮点算法
2.8.2 浮点模式
2.8.3 数值集合转换
2.9 特殊方法
2.10 异常
2.11 字节码指令集简介
2.11.1 数据类型与Java虚拟机
2.11.2 加载和存储指令
2.11.3 算术指令
2.11.4 类型转换指令
2.11.5 对象的创建与操作
2.11.6 操作数栈管理指令
2.11.7 控制转移指令
2.11.8 方法调用和返回指令
2.11.9 抛出异常
2.11.10 同步
2.12 类库
2.13 公有设计、私有实现
第3章 Java虚拟机编译器
3.1 示例的格式说明
3.2 常量、局部变量和控制结构的使用
3.3 算术运算
3.4 访问运行时常量池
3.5 与控制结构有关的更多示例
3.6 接收参数
3.7 方法调用
3.8 使用类实例
3.9 数组
3.10 编译switch语句
3.11 使用操作数栈
3.12 抛出异常和处理异常
3.13 编译finally语句块
3.14 同步
3.15 注解
第4章 class文件格式
4.1 ClassFile结构
4.2 各种名称的内部表示形式
4.2.1 类和接口的二进制名称
4.2.2 非限定名
4.3 描述符
4.3.1 语法符号
4.3.2 字段描述符
4.3.3 方法描述符
4.4 常量池
4.4.1 CONSTANT_Class_info结构
4.4.2 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_InterfaceMethodref_info结构
4.4.3 CONSTANT_String_info结构
4.4.4 CONSTANT_Integer_info和CONSTANT_Float_info结构
4.4.5 CONSTANT_Long_info和CONSTANT_Double_info结构
4.4.6 CONSTANT_NameAnd-Type_info结构
4.4.7 CONSTANT_Utf8_info结构
4.4.8 CONSTANT_MethodHandle_info结构
4.4.9 CONSTANT_MethodType_info结构
4.4.10 CONSTANT_Invoke-Dynamic_info结构
4.5 字段
4.6 方法
4.7 属性
4.7.1 自定义和命名新的属性
4.7.2 ConstantValue属性
4.7.3 Code属性
4.7.4 StackMapTable属性
4.7.5 Exceptions属性
4.7.6 InnerClasses属性
4.7.7 EnclosingMethod属性
4.7.8 Synthetic属性
4.7.9 Signature属性
4.7.10 SourceFile属性
4.7.11 SourceDebugExtension属性
4.7.12 LineNumberTable属性
4.7.13 LocalVariableTable属性
4.7.14 LocalVariableTypeTable属性
4.7.15 Deprecated属性
4.7.16 RuntimeVisibleAnnota-tions属性
4.7.17 RuntimeInvisible-Annotations属性
4.7.18 RuntimeVisibleParameterAnnotations属性
4.7.19 RuntimeInvisiblePara-meterAnnotations属性
4.7.20 RuntimeVisibleTypeAnnotations属性
4.7.21 RuntimeInvisibleType-Annotations属性
4.7.22 AnnotationDefault属性
4.7.23 BootstrapMethods属性
4.7.24 MethodParameters属性
4.8 格式检查
4.9 Java虚拟机代码约束
4.9.1 静态约束
4.9.2 结构化约束
4.10 class文件校验
4.10.1 类型检查验证
4.10.2 类型推导验证
4.11 Java虚拟机
第5章 加载、链接与初始化
5.1 运行时常量池
5.2 虚拟机启动
5.3 创建和加载
5.3.1 使用引导类加载器来加载类型
5.3.2 使用用户自定义类加载器来加载类型
5.3.3 创建数组类
5.3.4 加载
5.3.5 从class文件表示得到类
5.4 链接
5.4.1 验证
5.4.2 准备
5.4.3 解析
5.4.4 访问控制
5.4.5 方法覆盖
5.5 初始化
5.6 绑定本地方法实现
5.7 Java虚拟机退出
第6章 Java虚拟机指令集
6.1 设定:“必须”的含义
6.2 保留操作码
6.3 虚拟机错误
6.4 指令描述格式
6.5 指令集描述
第7章 操作码助记符
附录A Limited License Grant

内容摘要
  本书由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于近期新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和Java语言实现细节的推荐阅读之作。
本书共分7章。第1章从宏观的角度介绍了Java虚拟机与Java的关系及发展历程;第2章概述Java虚拟机的整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助;第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局部变量、控制结构、算术运算、参数接收、方法调用、数组、操作数栈、异常处理、同步与注解等;第4章深入分析用来表示编译后的类和接口的class文件格式;第5章定义Java虚拟机启动以及类与接口的加载、链接和初始化过程;第6章阐释并列举Java虚拟机指令集;第7章提供一张以操作码值为索引的Java虚拟机操作码助记符表。

精彩内容
Preface  前  言本书涵盖了自2011年发布Java SE 7版之后所发生的全部变化。此外,为了与常见的Java虚拟机实现相匹配,本书还添加了大量修订及说明。 本版与前面各版一样,仅仅描述了抽象的Java虚拟机,而在实现具体的Java虚拟机时,本书指出了设计规划。Java虚拟机的实现必须体现出本书中的内容,但仅在确有必要时才应该受制于这些规范。 对于Java SE 8来说,Java编程语言里的一些重要变化在这本Java虚拟机规范中都有相应的体现。为了尽量保持二进制兼容性,我们应该直接在Java虚拟机里指定带有默认实现代码的default方法,而不应该依赖于编译器,因为那样做将无法在不同厂商、不同版本的产品之间移植,此外,那种做法也不可能适用于已有的class文件。在设计JSR 335,也就是《Lambda Expressions for the Java Programming Language》(Java编程语言的lambda表达式)时,Oracle公司的Dan Smith向虚拟机实现者咨询了将default方法集成到常量池和方法结构、方法与接口方法解析算法,以及字节码指令集中的很好方式。JSR 335也允许在class文件级别的接口里出现private方法与static方法,而这些方法也同接口方法解析算法紧密地结合起来了。 Java SE 8的特点之一是:Java SE平台的程序库也伴随着Java虚拟机一起进化。有个小例子可以很好地说明这一特点:在运行程序的时候,Java SE 8可以获取方法的参数名,虚拟机会把这些名字存放在class文件结构中,而与此同时,java.lang.reflect.Parameter里也有个标准的API能够查询这些名字。另外,我们也可以通过class文件结构中一项有趣的统计数据来说明这个特点:本规范的第1版中定义了6个属性,其中有3个属性对Java虚拟机至关重要,而Java SE 8版的规范则定义了23个属性,其中只有5个属性对Java虚拟机很重要。换句话说,在新版规范中,属性主要是为了支持程序库而设计的,其次才是为了支持Java虚拟机本身。为了帮助读者理解class文件结构,本规范会更为清晰地描述出每项属性的角色及其使用。 在Oracle公司的Java Platform团队里,有多位同事都对这份规范提供了大力支持,他们包括:Mandy Chung、Joe Darcy、Joel Franck、Staffan Friberg、Yuri Gaevsky、Jon Gibbons、Jeannette Hung、Eric McCorkle、Matherey Nunez、Mark Reinhold、John Rose、Georges Saab、Steve Sides、Bernard Traversat、Michel Trudeau和Mikael Vidstedt。尤其感谢Dan Heidinga (IBM)、Karen Kinnear、Keith McGuigan及Harold Seigel,他们对常见的Java虚拟机实现中的兼容性及安全性贡献良多。 Alex Buckley于加利福尼亚州圣克拉拉

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP