译者序
在程序员群体中,有两个未解之谜 :那就是最好的编程语言和最好的编辑器到底是什么。关于语言的争论在程序员群体中是司空见惯的现象,至于哪个是世界上最好的编程语言也是见仁见智的,但不可否认的是 Java 在企业级和互联网开发中依然占据着重要的地位。除了“跨平台”这一特性早年带来的红利外,Java 能够 20 多年长盛不衰的原因在于它是一门不断演进和优化的语言。
尽管被其他语言的拥趸诟病演化缓慢,但 Java 确实在不断地革新,吸收和借鉴其他语言优秀的特征,比如 Lambda 表达式、函数式编程、泛型等。通过语言层面的改善,开发人员可以编写更加现代和更加简洁的代码,同时能够享受到软硬件架构体系演化所带来的收益。Java 另一个巨大的优势在于活跃的开源社区,像 Spring、Hibernate、Apache 等开源项目和组织,简化了大规模企业级 Java 应用的开发,抽离了技术底层的关注点,能够让我们专注于业务开发。因此,不管是 J2EE、SOA,还是近两年火热的微服务架构,都离不开 Java 语言的身影。
既然 Java 语言如此受欢迎,那么关于 Java 语言的技术图书用浩如烟海来形容就丝毫不过分了。在这方面既有专注于语言用法的经典图书,也有深入底层 JVM 原理的佳作,那么这本《Java口袋指南》的特殊之处在哪里呢?
这不是一本深入讲解 Java 语法细节的图书,也不是分析 JVM实现原理的书,该书以 Java 的基本用法作为切入点,在介绍Java 已有功能的基础上,重点讲解了 Java 8 和 Java 9 中的一些新特性,比如 Lambda 表达式、JShell、模块系统,能够让读者快速理解和掌握最新的技术。本书行文简洁,同时附带大量样例,能够让读者在示例中理解相关特性的原理和用法。
所谓“九层之台,起于累土”,我们只有掌握了 Java 的基本功能,夯实了知识基础,再去学习各种日新月异的开发框架,应对层出不穷的架构理念,才会得心应手。本书的英文版已经畅销多年,作者会根据 Java 语言的发展不断对内容进行更新和补充,希望中文版的发行能够帮助到更多的中国程序员朋友。
尽管在翻译的过程中,我力争达到准确和通畅,但限于水平和时间,肯定还有许多的不足或纰漏之处,热忱期待您提出意见,希望本书能够对您有用,您可以通过 levinzhang1981@126.com联系到我,祝阅读愉快。
前言
《Java 9 口袋指南》一书的目标是成为读者的手边书,本书提供了 Java 语言和平台标准特性的快速指南。
《Java 9 口袋指南》提供了开发或调试 Java 程序所需的知识,包括了有用的编程样例、表格、图和列表。
本书中所介绍的 Java 是基于 Java SE 9 讲解的,包括了 80 个以上的 JDK 增强计划(JDK Enhancement Proposal,JEP)的子集。
本书中介绍的 Java 包含了对语言的通用修改以及新的 Java Shell和 Java 模块系统。本书将会取代之前的 Java Pocket Guide、Java 7 Pocket Guide 和 Java 8 Pocket Guide。
处于一致性和读者兴趣的考虑,第 4 版《Java 9 口袋指南》的主要代码对 Gliesians Web 应用(http://gliesians.com/index-genealogy.faces)的代码片段进行了更新。在编写本书的时候,Gliesians Web 应用的主要关注点在于提供免费的工具类,用于系谱学和小型无人机系统。
本书中还提供了准备 Oracle 认证程序员考试的资料。如果你考虑获取这样的 Java 证书,还可以购买 Edward Finegan 和 RobertLiguori 合著的 OCA Java SE 8 Programmer I Study Guide (Exam1Z0-808)(McGraw-Hill Osborne Media, 2015)。
本书结构
本书分为三部分 :第一部分详细介绍 Java 语言规范(JLS)和JEP 所衍生的 Java 编程语言。第二部分介绍了 Java 平台组件和相关话题。第三部分是附录,介绍了相关的支撑技术。