《Java虚拟机规范(Java SE 7版)》PDF下载
内容简介
本书整合了自1999年《Java虚拟机规范(第2版)》发布以来Java世界所出现的技术变化。另外,还修正了第2版中的许多错误,以及对目前主流Java虚拟机实现来说已经过时的内容。最后还处理了一些Java虚拟机和Java语言概念的模糊之处。
针对本书,读者有任何勘误或模糊之处,均可发邮件到jvms-comments-ww@oracle.com。
2004年发布的Java SE 5.0版为Java语言带来了翻天覆地的变化,但是对Java虚拟机设计的影响则相对较小。在Java SE 7这个版本中,我们扩充了class文件格式以便支持新的Java语言特性,譬如泛型和变长参数方法等。
2006年发布的Java SE 6.0版看起来并没有为Java语言带来什么新的变化,但是对Java虚拟机的影响就比较大。如新的字节码验证方式,它源于Eva Rose的一篇硕士论文,文中以Java Card平台为背景,展示了Java虚拟机字节码验证的另一种全新的实现思路。这促进了Java ME CLDC第1版实现的诞生,并最终成为Java SE平台class验证过程的理论基础。关于这部分内容将会在第4章中介绍。
Sheng Liang实现了Java ME CLDC的验证器。Gilad Bracha负责对该验证器做出详细说明,Antero Taivalsaari则是整个Java ME CLDC规范的负责人。Alessandro Coglio在字节码验证的分析方面的工作对本规范做出了很大的贡献。Wei Tao、Frank Yellin、TimLindholm与Gilad Bracha一起实现的Prolog验证器是Java ME和Java SE平台规范的共同基础。Wei Tao后续继续实现了实际运用于Hot Spot Java虚拟机的验证器。之后Mingyao Yang改进了规范和设计,形成了Java SE 6中的最终实现版本。该规范成文得益于以下JSR 202专家组成员:Peter Burka、Alessandro Coglio、Sanghoon Jin、Christian Kemper、Larry Rau、EvaRose以及 Mark Stolz。
作者简介
从1999年4月出版《Java虚拟机规范(第2版)》至今,已经14年过去了,虽然此规范在JDK5发布的时候做了较大的更新,但却始终没有发布完整的规范。2011年6月28日,最新的《Java虚拟机规范》终于完成并在7月份正式发布。对于想了解Java虚拟机的程序员来说,本书是必须阅读的;想深入了解Java语言细节的程序员阅读本书也有极大好处,但是《Java虚拟机规范》、《Java语言规范》发布十余年,一直没有中文译本,这令国内不少对Java虚拟机感兴趣但英语能力较弱的程序员只能望书兴叹。
2011年年初,本书还处于草稿状态时,我就开始关注本书,并陆续对其中第1、2、6、7章进行了翻译,到2011年9月时完成了200余页的译稿。这时候又在国内著名Java社区ItEye中结识了另外三名译者薛笛、吴璞渊和冶秀刚,我们在随后的两个多月的时间里共同完成了其余章节的翻译和校对。在2013年,机械工业出版社获得了这本书的版权,并且采用了我们翻译的版本出版,因此有了这本中文版图书。
本书并非某一款虚拟机实现的说明书,它是一份保证各个公司的Java虚拟机实现具备统一外部接口的契约文档,书中的概念和细节描述曾经与Sun公司早期虚拟机的实现高度吻合,但是随着技术的发展,高性能虚拟机真正的细节实现方式已经渐渐与虚拟机规范所描述的内容产生了越来越大的差距。作者也在书中不同地方反复强调:虚拟机规范中所提及的“Java虚拟机”皆为虚拟机的概念模型而非具体实现。实现只要保证与概念模型最终等效即可,而具体实现的方式无需受概念模型束缚。因此,通过《Java虚拟机规范》分析程序的执行语义问题(虚拟机会做什么)是十分合适且具权威性的,但分析程序的执行行为问题(虚拟机是怎样做的、性能如何)则意义不大,如果需要对具体虚拟机实现进行调优、性能分析等,我推荐在本书基础上继续阅读《Java Performance》和《Oracle JRockit:The Definitive Guide》等书。
在翻译过程中,我们尽最大努力保证作品的准确性和可读性,力求在保证语义准确的前提下,尽可能使用通俗易懂的方式向给各位读者介绍Java虚拟机的约束与运作原理。为实现此目标,我们在翻译专有技术名词、偏僻词时用括号保留了原文,并专门在多处读者理解起来可能有困难的地方,添加了“译者注”加以解释。
囿于我们的水平和翻译时间,书中难免存在不妥之处,大家如有任何意见或建议都欢迎通过以下电子邮箱与我联系:understandingjvm@gmail.com。
周志明
关注下方公众号【程序员李木子】,发送【885909】免费获取
更多文章,请关注公众号【程序员李木子】,有免费的电子书哦