前言

前言

这是一本 Java 案头参考书,适合放在键盘旁,编程时随时翻阅。本书第一部分快速准确地介绍 Java 编程语言和 Java 平台的核心运行时概念。第二部分通过重要的核心 API 示例来解释关键概念。本书虽然涵盖 Java 8,但考虑到有些行业还没有开始使用,所以只要有需要,我们就会特别注明 Java 8(部分是 Java 7)引入的功能。本书全面使用 Java 8 句法,以前可能使用匿名嵌套类的地方会换用 lambda 表达式。

第6版的变化

本书第 5 版涵盖 Java 5,而这一版涵盖 Java 8。本书第 5 版大约在十年前出版,在那之后,Java 语言和程序员的工作环境都发生了重大变化。因此,这一版内容变化很大。其中一个重要的变化是,不再像前几版那样对平台的核心 API 进行详尽的介绍。

其中一个原因是,在纸质书中印出数量巨大的核心 API 是不切实际的。而一个更有说服力的原因是,随时可连的快速互联网不断普及,几乎所有 Java 程序员工作时都会连接互联网。详细的 API 文档参考更适合放在网上,而不是印在书中。

相应地,这一版删掉了占据第 5 版三分之二篇幅的 API 参考,剩下的内容才符合“概要型”手册的要求。当代 Java 开发者不仅需要了解句法和 API,当 Java 环境成熟后,并发、面向对象设计、内存管理和 Java 类型系统这些话题都变得重要了,主流开发者都要了解。

我们在这一版中试图反映出 Java 生态系统这些年的变化,因此很大程度上摒弃了前几版的写作方式。具体而言,我们基本不会详细说明某个 Java 特性是在哪个版本中引入的,因为大多数 Java 开发者只关心最新版。

本书内容

本书前 6 章介绍 Java 语言和 Java 平台——这些内容一定要仔细阅读。这本书偏向 Oracle/OpenJDK(Open Java Development Kit)对 Java 的实现,但又不局限于此,使用其他 Java 环境的开发者仍然能看到很多对其他环境的介绍。第一部分包括如下内容。

  • 第 1 章 Java 环境介绍

    这一章概述 Java 语言和 Java 平台,说明 Java 的重要特性和优势,包括 Java 程序的生命周期。最后会介绍 Java 的安全性,并回应一些针对 Java 的批评。

  • 第 2 章 Java 基本句法

    这一章详细介绍 Java 编程语言,包括 Java 8 的改动。这一章内容很多,也很详细,不过阅读前不需要读者有大量编程经验。有经验的 Java 程序员可以把这一章当成语言参考。有大量 C 和 C++ 开发经验的程序员阅读这一章之后,也能快速了解 Java 的句法。只有少量编程经验的初学者经过认真阅读,应该也能学会 Java 编程,不过最好再结合其他资料一起学习,例如 Bert Bates 和 Kathy Sierra 合著的 Head First Java(O'Reilly 出版,http://shop.oreilly.com/product/9780596009205.do)。

  • 第 3 章 Java 面向对象编程

    这一章介绍如何利用第 2 章介绍的 Java 基本句法,使用类和对象编写简单的面向对象程序。这一章不要求读者有面向对象编程经验。新手程序员可以将其当成教程,有经验的 Java 程序员则可以当作参考。

  • 第 4 章 Java 类型系统

    这一章以前面对 Java 面向对象编程的说明为基础,介绍 Java 类型系统的其他方面,例如泛型、枚举类型和注解。全面地了解类型系统之后,我们就可以讨论 Java 8 最大的变化了——lambda 表达式。

  • 第 5 章 Java 的面向对象设计

    这一章概述设计可靠的面向对象程序所需的一些基本技术,还会简单介绍一些设计模式及其在软件工程中的用处。

  • 第 6 章 Java 实现内存管理和并发编程的方式

    这一章讨论 Java 虚拟机代替程序员管理内存的方式,以及内存、可见性与 Java 并发编程和线程之间错综复杂的关系。

前 6 章教你如何使用 Java 语言,也介绍了 Java 平台最重要的概念。本书第二部分则告诉你如何在 Java 环境中完成实际的编程任务。这部分包含大量示例,以攻略方式撰写。第二部分包括如下内容。

  • 第 7 章 编程和文档约定

    这一章介绍 Java 编程中重要且运用广泛的重要约定,还会介绍如何使用特定格式的文档注释来让 Java 代码进行自我文档化。

  • 第 8 章 使用 Java 集合

    这一章介绍 Java 的标准集合库,包含几乎对每个 Java 程序都很重要的数据结构,例如 ListMapSet。此外,还会详细介绍新引入的 Stream 抽象,以及 lambda 表达式和集合之间的关系。

  • 第 9 章 处理常见的数据格式

    这一章说明如何有效使用 Java 处理常见的数据类型,例如文本、数字和时间相关的信息(日期和时间)。

  • 第 10 章 处理文件和 I/O

    这一章涵盖几种不同的文件处理方式,包括 Java 旧版中的经典方式和现代化的异步方式,最后还会简单介绍如何使用 Java 平台的核心 API 处理网络。

  • 第 11 章 类加载、反射和方法句柄

    这一章介绍 Java 隐含的元编程功能。首先介绍 Java 类型元信息的概念;然后介绍类加载,以及 Java 的安全模型和动态类型加载之间的关系;最后,介绍几个类加载程序和相对较新的方法句柄功能。

  • 第 12 章 Nashorn

    这一章介绍 Nashorn,这是一个运行在 Java 虚拟机中的 JavaScript 实现。Nashorn 在 Java 8 中引入,它在其他 JavaScript 实现之外又提供了一个选择。这一章末尾会介绍 Avatar.js,这是和 Node 兼容的服务器端技术。

  • 第 13 章 平台工具和配置

    甲骨文提供的 JDK(和 OpenJDK)包含很多有用的 Java 开发工具,其中最重要的是 Java 解释器和编译器。这一章会介绍这些工具。这一章后半部分介绍紧凑配置——这是 Java 8 的新功能,用于精简 Java 运行时环境(Java Runtime Environment,JRE),能显著减少占用空间。

相关书籍

O'Reilly 出版了一个系列的 Java 编程书籍,其中有几本与本书配套,如下所示。

O'Reilly 出版的所有 Java 书籍可以在 http://java.oreilly.com/ 找到。

在线示例

本书中的示例可在本书主页下载,地址是 http://www.oreilly.com/catalog/javanut6。访问这个地址还能看到重要的说明或勘误。

排版约定

本书使用了下述排版约定。

  • 楷体

    表示新术语。

  • 等宽字体(Constant width

    表示 Java 代码,也表示编程时输入的字面量,例如关键字、数据类型、常量、方法名、变量、类名和接口名。

  • 斜体等宽字体(Constant Width Italic

    表示函数的参数名称,一般还表示占位符,表明要换成程序中真正使用的值。有时还用来指代概念区域或代码行,例如 statement

 这个图标表示提示或建议。

 这个图标表示一般性说明。

 这个图标表示警告或提醒。

发表评论

请把评论、勘误和建议通过电子邮件地址 javanut6@gmail.com 直接发给本书作者。

请把对本书的评价和问题发给出版社。

美国:

  O'Reilly Media, Inc.

  1005 Gravenstein Highway North

  Sebastopol, CA 95472

中国:

  北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

  奥莱利技术咨询(北京)有限公司

O'Reilly 的每一本书都有专属网页,你可以在那儿找到本书的相关信息,包括勘误表、示例代码以及其他信息。本书的网站地址是:

  http://shop.oreilly.com/product/0636920030775.do

对于本书的评论和技术性问题,请发送电子邮件到:

  bookquestions@oreilly.com

要了解更多 O'Reilly 图书、培训课程、会议和新闻的信息,请访问以下网站:

  http://www.oreilly.com

我们在 Facebook 的地址如下:http://facebook.com/oreilly

请关注我们的 Twitter 动态:http://twitter.com/oreillymedia

我们的 YouTube 视频地址如下:http://www.youtube.com/oreillymedia

Safari® Books Online

Safari Books Online(http://www.safaribooksonline.com)是应运而生的数字图书馆。它同时以图书和视频的形式出版世界顶级技术和商务作家的专业作品。技术专家、软件开发人员、Web 设计师、商务人士和创意专家等,在开展调研、解决问题、学习和认证培训时,都将 Safari Books Online 视作获取资料的首选渠道。

对于组织团体、政府机构和个人,Safari Books Online 提供各种产品组合和灵活的定价策略。用户可通过一个功能完备的数据库检索系统访问 O'Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 以及其他几十家出版社的上千种图书、培训视频和正式出版之前的书稿。要了解 Safari Books Online 的更多信息,我们网上见。

致谢

Meghan Blanchette 是第 6 版的编辑,她十分注重细节、性格开朗、专业扎实,在撰写本书过程中的每个重要时刻都为我们提供了额外的动力。

特别感谢 Jim Gough、Richard Warburton、John Oliver、Trisha Gee 和 Stephen Colebourne。

Martijn Verburg 始终是我们的好朋友和商业伙伴,我们经常征求他的意见,他为我们提供了很多有用的建议。

Ben 要特别感谢每一个给他反馈和帮助他提升写作能力的人。特别要指出的是 Caroline Kvitka、Victor Grazi、Tori Weildt 和 Simon Ritter,感谢他们提出的有用建议。如果他没有采纳他们的出色建议,当然应该责怪他自己。

目录