书籍详情
深入Java虚拟机(原书第2版)
作者:(美)Bill Venners著;曹晓钢,蒋靖译;曹晓钢译
出版社:机械工业出版社
出版时间:2003-09-01
ISBN:9787111128052
定价:¥58.00
购买这本书可以去
内容简介
对本书第1版的赞誉??作者卓有成效地深入解释了Java虚拟机(JVM)的内部工作原理,对这个错综复杂的软件中的许多部分都给出了可能的实现,这是对Sun的官方规范的精彩补充。每一个概念都很清晰,一般都有例子作辅助说明。随书光盘中还包含了许多富有启发的示例,它们演示了虚拟机内部工作的情况。这本书得到虚拟机实现者的极高评价,相信任何有兴趣了解虚拟机核心部分的人都会获益匪浅。??——AntoineTrux,芬兰赫尔辛基诺基亚研究中心项目经理,《JavaReport》杂志,1998年12月。《深入Java虚拟机》一书的作者因本书获《JavaReport》杂志1998年优秀作者奖。??在我钻研本书的结构和内容之前,我很高兴提到Venners的书给我印象最深刻的一点:对细节的全心关注和对内容的精确协调。??从第5章到第20章都包含花很多心思编写的动态交互式applet,它们为每章的主题带来了活力。比如说垃圾收集这一章,不仅介绍了许多现代垃圾收集算法,还附带了一个“鱼堆”applet,让读者真正理解垃圾收集中的设计问题及可能的解决方案。??简单地说,Venners的书是卓越的,是一本我必须推荐的书。??——LaurenceVanhelsuwe,《JavaWorld杂志》,1998年3月感谢你写出这么优秀的书。我已经编写Java程序很多年了,这本书真的帮助我洞察了这门语言的内脏。再次为了美妙的阅读体验感谢你!??——NoahS.Frledland?博士??最近购买了你的书,它比JVM规范易读、易懂多了!我还喜欢你的applet,它们让事情变得简明易懂。??——PaulBathen??《深入Java虚拟机》这本书,是我所有Java图书收藏中编写得最好和最有帮助的书之一。??——LouisBarton??我刚刚读完你的《深入Java虚拟机》,感谢你富有帮助的工作!??——AntoineTrux??一本关于Java虚拟机的详尽而系统的书。假如你准备开始编写自己的JVM,或者你对“在执行.class文件的时候究竟发生了什么事情”感兴趣的话,就必须拥有这本书。对所有读过Java虚拟机规范后还想寻找更多资料的人来说,这本书是受欢迎的、减轻痛苦的良药。??——GopalAnanthraman??我真的在阅读你的书的时候感到愉悦。它有很多很好的内容,我觉得它们会使我成为更好的Java程序员。——JoelNylund,美国管理系统公司??我购买了一本《深入Java虚拟机》。虽然我只阅读了第7章和第8章,但我感到非常愉快,并且对中间的细节印象深刻。你回答了我所遇到的很多问题,包括“在调用ClassLoader.findSystemClass()的时候,在动态类装载器委派责任中,对于已装载的类,虚拟机会解释哪一个类装载器?”??我以前在Lotus开发公司工作的时候,我与别人合作为Prentice-Hall写过一本叫做《深入LotusAdd-in?工具包》的书。我们讨论的技术和Java很相似——个平台中立的、拥有部分复杂性的语言(其字节码需要一个运行时虚拟机来执行)。??作为作者,我们的目标是在描述整个技术的时候保持精确性和幽默感。我们在技术上花费了大量劳动,对精确性和技术细节特别关注——如同开发者一样,我们希望文章是有用的、正确的;如同读者一样,我们精通英语的用法,因为大部分流行的技术文章都不敢恭维。??这些方面都是我对你的工作表示激赏的。当一个作者花时间来写完整的句子,采用通俗的语气,保持专业术语的一致性,并且提供真正有价值的内容,而不仅仅是重复公开的规范(通常还是不精确的),我向这样的作者致敬。?——DavidMcCall??如果你真的希望揭开Java的面纱,这是最好的Java书。如果你真的希望了解JVM的输入输出,《深入Java虚拟机》是一本值得敬畏的著作。我被作为技术作家的Bill先生的能力打动了,对任何认真的Java开发者,如果想深入理解Java,我强烈推荐这本书。??——RashidJilani,发表于AMAZON.COM??一本伟大的书。??这是我到目前为止读过的最好的Java书。Bill是一个伟大的软件工程师,也是作家。如果你希望了解JVM的内幕,这本书是必不可少的。??——MichaelYoung,发表于AMAZON.COM??本书作者曾因本书荣获专业技术杂志《JavaReport》评选的优秀作者奖,细心的读者可以从网上找到许多对本书第1版的赞誉。??作者以易于理解的方式深入揭示了Java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益!??本书共分20章,第1~4章解释了Java虚拟机的体系结构,包括Java栈、堆、方法区、执行引擎等;第5~20章深入描述了Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中第6章和附录A~C完全可以作为class文件和指令集的参考手册。本书还附带光盘,光盘中包含用以辅助说明正文内容的交互式例示applet及示例源代码。??本书深入详细地介绍了Java体系结构及其内部细节,了解这些内容才能更快速地编写更高效的程序!理解了Java虚拟机,深入细致地了解了Java技术的底层,才能使自己的程序充分发挥Java技术的优势!??本书详细解释了JVM的体系结构,包括Java栈、堆。方法区和执行引擎。还深入讨论了各种技术实现,比如解释、即时编译及自适应优化。对Java线程和监视器的行为也有精彩讲解。??本书还讨论了垃圾收集,包括引用对象.火车算法以及对象终结。最后,还讨论了错综复杂的Java安全模型,包括类型安全性。类装载器体系、类校验器、安全管理器。访问控制器和代码签名。??通过本书,读者可以充分理解Java的连接模型和动态扩展机制,学习如何编写类装载器,了解编写平台独立的Java程序的7个步骤。?Java世界和JVM体系结构的完整描述?class文件,字节码及其在类装载期间的转换和验证?算术、逻辑和数组操作以及流程控制?方法调用及返回。异常。垃圾收集和线程?JVM的即时编译器实现
作者简介
BillVenners有14年编写软件专著的经验。他在硅谷的Artima软件公司提供软件咨询和培训服务。自1996年以来,他已经编写了40多篇有关Java技术的文章。他在《JavaWorld杂志》辟有热闹专栏,介绍Java内部细节、面向对象设计技术和Jini技术。他还是artima.com的作者和网站管理员、这是Java和Jini开发者的一个在线资源站点。他在全世界范围举办内部培训和公开的研究报告,有时也在软件会议上进行Java技术讲演。
目录
译者序
前言
第1章 Java体系结构介绍
1.1 为什么使用Java
1.2 网络带来的挑战和机遇
1.3 体系结构
1.4 java体系结构的代价
1.5 结论
1.6 资源页
第2章 平台无关
2.1 为什么要平台无关
2.2 Java的体系结构对平台无关的支持
2.3 影响平台无关性的因素
2.4 平台无关的七个步聚
2.5 平台无关性的策略
2.6 平台无关性和网络移动对象
2.7 资源页
第3章 安全
3.1 为什么需要安全性
3.2 基本沙箱
3.3 类装载器体系结构
3.4 class文件检验器
3.5 Java虚拟机中内置的安全特性
3.6 安全管理器和Java API
3.7 代码签名和认证
3.8 一个代码签名示例
3.9 策略
3.10 保护域
3.11 访问控制器
3.12 Java安全模型的不足和今后的发展方向
3.13 和体系结构无关的安全性
3.14 资源页
第4章 网络移动性
4.1 为什么需要网络移动性
4.2 一种新的软件模式
4.3 Java体系结构对网络移动性的支持
4.4 applet:网络移动性代码的示例
4.5 Jini服务对象:网络移动对象的示例
4.6 网络移动性:Java设计的中心
4.7 资源页
第5章 Java虚拟机
5.1 Java虚拟机是什么
5.2 Java虚拟机的生命周期
5.3 Java虚拟机的体系结构
5.4 真实机器
5.5 一个模拟:“Eternal Math”
5.6 随书光盘
5.7 资源页
第6章 Java class文件
6.1 Java class文件是什么
6.2 class文件的内容
6.3 特殊字符串
6.4 常量池
6.5 字段
6.6 方法
6.7 属性
6.8 一个模拟: “Getting Loaded”
6.9 随书光盘
6.10 资源页
第7章 类型的生命周期
7.1 类型装载、连接与初始化
7.2 对象的生命周期
7.3 卸载类型
7.4 随书光盘
7.5 资源页
第8章 连接模型
8.1 动态连接和解析
8.2 随书光盘
8.3 资源页
第9章 垃圾收集
9.1 为什么要使用垃圾收集
9.2 垃圾收集算法
9.3 引用计数收集器
9.4 跟踪收集器
9.5 压缩收集器
9.6 拷贝收集器
9.7 按代收集的收集器
9.8 自适应收集器
9.9 火车算法
9.10 终结
9.11 对象可触及性的生命周期
9.12 一个模拟:“Heap of Fish”
9.13 随书光盘
9.14 资源页
第10章 栈和局部变量操作
10.1 常量入栈操作
10.2 通用栈操作
10.3 把局部变量压入栈
10.4 弹出栈顶部元素,将其赋给局部变量
10.5 wide命令
10.6 一个模拟:“Fibonacci Forever”
10.7 随书光盘
10.8 资源页
第11章 类型转换
11.1 转换操作码
11.2 一个模拟:“Conversion Diversion”
11.3 随书光盘
11.4 资源页
第12章 整数运算
12.1 二进制补码运算
12.2 Innr Int:提示Java int类型内部性质的applet
12.3 运算操作码
12.4 一个模拟:“Prime Time”
12.5 随书光盘
12.6 资源页
第13章 逻辑运算
13.1 逻辑操作码
13.2 一个模拟:“Logical Results”
13.3 随书光盘
13.4 资源页
第14章 浮点运算
14.1 浮点数
14.2 Inner Float:提示了Java float类型内部性质的applet
14.3 浮点模式
14.4 浮点操作码
14.5 一个模拟:“Circle of Squares”
14.6 随书光盘
14.7 资源页
第15章 对象和数组
15.1 关于对象和数组的回顾
15.2 针对对象的操作码
15.3 针对数组的操作码
15.4 一个模拟:“Three-Dimensional Array”
15.5 随书光盘
15.6 资源页
第16章 控制流
16.1 条件分支
16.2 无条件分支
16.3 使用表的条件分支
16.4 一个模拟:“Saying Tomato”
16.5 随书光盘
16.6 资源页
第17章 异常
17.1 异常的抛出与捕获
17.2 异常表
17.3 一个模拟:“Play Ball!”
17.4 随书光盘
17.5 资源页
第18章 finally子句
18.1 微型子例程
18.2 不对称的调用和返回
18.3 一个模拟:“hop Around”
18.4 随书光盘
资源页
第19章 方法的调用与返回
19.1 方法调用
19.2 方法调用的其他形式
19.3 指令invokespecial
19.4 批令invokeinterface
19.5 指令的调用和速度
19.6 方法调用的实例
19.7 从方法中返回
19.8 随书光盘
19.9 资源页
第20章 线程同步
20.1 监视器
20.2 对象锁
20.3 指令集中对同步的支持
20.4 Object类中的协调支持
20.5 随书光盘
20.6 资源页
附录A 按操作码助记符排列的指令集
附录B 按功能排列的操作码助记符
附录C 按操作码字节值排列的操作码助记符
附录D Java虚拟机的一个模拟:“Slices of Pi”
前言
第1章 Java体系结构介绍
1.1 为什么使用Java
1.2 网络带来的挑战和机遇
1.3 体系结构
1.4 java体系结构的代价
1.5 结论
1.6 资源页
第2章 平台无关
2.1 为什么要平台无关
2.2 Java的体系结构对平台无关的支持
2.3 影响平台无关性的因素
2.4 平台无关的七个步聚
2.5 平台无关性的策略
2.6 平台无关性和网络移动对象
2.7 资源页
第3章 安全
3.1 为什么需要安全性
3.2 基本沙箱
3.3 类装载器体系结构
3.4 class文件检验器
3.5 Java虚拟机中内置的安全特性
3.6 安全管理器和Java API
3.7 代码签名和认证
3.8 一个代码签名示例
3.9 策略
3.10 保护域
3.11 访问控制器
3.12 Java安全模型的不足和今后的发展方向
3.13 和体系结构无关的安全性
3.14 资源页
第4章 网络移动性
4.1 为什么需要网络移动性
4.2 一种新的软件模式
4.3 Java体系结构对网络移动性的支持
4.4 applet:网络移动性代码的示例
4.5 Jini服务对象:网络移动对象的示例
4.6 网络移动性:Java设计的中心
4.7 资源页
第5章 Java虚拟机
5.1 Java虚拟机是什么
5.2 Java虚拟机的生命周期
5.3 Java虚拟机的体系结构
5.4 真实机器
5.5 一个模拟:“Eternal Math”
5.6 随书光盘
5.7 资源页
第6章 Java class文件
6.1 Java class文件是什么
6.2 class文件的内容
6.3 特殊字符串
6.4 常量池
6.5 字段
6.6 方法
6.7 属性
6.8 一个模拟: “Getting Loaded”
6.9 随书光盘
6.10 资源页
第7章 类型的生命周期
7.1 类型装载、连接与初始化
7.2 对象的生命周期
7.3 卸载类型
7.4 随书光盘
7.5 资源页
第8章 连接模型
8.1 动态连接和解析
8.2 随书光盘
8.3 资源页
第9章 垃圾收集
9.1 为什么要使用垃圾收集
9.2 垃圾收集算法
9.3 引用计数收集器
9.4 跟踪收集器
9.5 压缩收集器
9.6 拷贝收集器
9.7 按代收集的收集器
9.8 自适应收集器
9.9 火车算法
9.10 终结
9.11 对象可触及性的生命周期
9.12 一个模拟:“Heap of Fish”
9.13 随书光盘
9.14 资源页
第10章 栈和局部变量操作
10.1 常量入栈操作
10.2 通用栈操作
10.3 把局部变量压入栈
10.4 弹出栈顶部元素,将其赋给局部变量
10.5 wide命令
10.6 一个模拟:“Fibonacci Forever”
10.7 随书光盘
10.8 资源页
第11章 类型转换
11.1 转换操作码
11.2 一个模拟:“Conversion Diversion”
11.3 随书光盘
11.4 资源页
第12章 整数运算
12.1 二进制补码运算
12.2 Innr Int:提示Java int类型内部性质的applet
12.3 运算操作码
12.4 一个模拟:“Prime Time”
12.5 随书光盘
12.6 资源页
第13章 逻辑运算
13.1 逻辑操作码
13.2 一个模拟:“Logical Results”
13.3 随书光盘
13.4 资源页
第14章 浮点运算
14.1 浮点数
14.2 Inner Float:提示了Java float类型内部性质的applet
14.3 浮点模式
14.4 浮点操作码
14.5 一个模拟:“Circle of Squares”
14.6 随书光盘
14.7 资源页
第15章 对象和数组
15.1 关于对象和数组的回顾
15.2 针对对象的操作码
15.3 针对数组的操作码
15.4 一个模拟:“Three-Dimensional Array”
15.5 随书光盘
15.6 资源页
第16章 控制流
16.1 条件分支
16.2 无条件分支
16.3 使用表的条件分支
16.4 一个模拟:“Saying Tomato”
16.5 随书光盘
16.6 资源页
第17章 异常
17.1 异常的抛出与捕获
17.2 异常表
17.3 一个模拟:“Play Ball!”
17.4 随书光盘
17.5 资源页
第18章 finally子句
18.1 微型子例程
18.2 不对称的调用和返回
18.3 一个模拟:“hop Around”
18.4 随书光盘
资源页
第19章 方法的调用与返回
19.1 方法调用
19.2 方法调用的其他形式
19.3 指令invokespecial
19.4 批令invokeinterface
19.5 指令的调用和速度
19.6 方法调用的实例
19.7 从方法中返回
19.8 随书光盘
19.9 资源页
第20章 线程同步
20.1 监视器
20.2 对象锁
20.3 指令集中对同步的支持
20.4 Object类中的协调支持
20.5 随书光盘
20.6 资源页
附录A 按操作码助记符排列的指令集
附录B 按功能排列的操作码助记符
附录C 按操作码字节值排列的操作码助记符
附录D Java虚拟机的一个模拟:“Slices of Pi”
猜您喜欢