Skip to content

Latest commit

 

History

History
134 lines (81 loc) · 8.02 KB

File metadata and controls

134 lines (81 loc) · 8.02 KB

零、序言

本手册提供了一系列软件开发示例,通过简单明了的代码进行了说明,提供了一步一步的资源和节省时间的方法,帮助您高效地解决数据问题。从安装 Java 开始,每个配方都解决了一个特定的问题,并伴随着一个解释解决方案并深入了解其工作原理的讨论。我们将介绍有关核心编程语言的主要概念,以及构建各种软件所涉及的常见任务。您将按照食谱了解最新 Java11 版本的新特性,以使您的应用程序模块化、安全和快速。

这本书是给谁的

目标受众包括初学者、具有中级经验的程序员,甚至专家;所有人都可以访问这些菜谱,它们展示了 Java11 发布的最新特性。

这本书涵盖的内容

第 1 章、“安装和一瞥 Java 11”,帮助您设置运行 Java 程序的开发环境,并简要介绍 Java 11 中的新功能和工具。

第 2 章“OOP 快速通道——类和接口,涵盖了面向对象编程(OOP)原理和设计解决方案,包括内部类、继承、组合、接口、枚举以及 Java 9 对 Javadocs 的更改。

第 3 章“模块化编程”介绍了拼图作为 Java 生态系统的一个主要特性和巨大飞跃。本章将演示如何使用工具(如 JDEP 和 JLink)创建简单的模块化应用程序和相关工件(如模块化 JAR),以及如何模块化预 Jigsaw 应用程序。

第 4 章“开始函数式”介绍了一种称为函数式编程的编程范式。所涵盖的主题包括函数接口、Lambda 表达式和 Lambda 友好的 API。

第 5 章“流和管道”展示了如何利用流和链接集合上的多个操作来创建管道,使用工厂方法创建集合对象,创建和操作流,以及在 流上创建操作管道,包括并行计算。

第 6 章“数据库编程”涵盖了 Java 应用程序和数据库之间的基本和常用交互,从连接到数据库并执行 CRUD 操作到创建事务、存储过程以及处理大型对象 。

第 7 章、“并发和多线程编程”介绍了合并并发的不同方式以及一些最佳实践,如同步和不变性。本章还讨论了一些常用模式的实现,例如使用 Java 提供的构造进行分治和发布-订阅。

第 8 章“操作系统进程的更好管理”详细阐述了流程 API 的新 API 增强。

第 9 章“使用 Spring Boot 的 RESTful Web 服务”介绍了使用 Spring Boot 创建简单的 RESTful Web 服务,将其部署到 Heroku,对接基于 Spring Boot 的 RESTful Web 服务应用程序,以及使用 Prometheus 监控 Spring Boot 应用程序。

第 10 章、“网络”展示了如何使用不同的 HTTP 客户端 API 库;即,最新 JDK 附带的新 HTTP 客户端 API、Apache HTTP 客户端和 Unirest HTTP 客户端 API。

第 11 章“内存管理和调试”探讨了 Java 应用程序的内存管理,包括介绍 Java 9 中使用的垃圾收集算法,以及一些有助于高级应用程序诊断的新功能。我们还将展示如何通过使用新的资源试用构造和新的栈遍历 API 来管理资源。

第 12 章“使用 JShell 的读取-评估打印循环(REPL)”向您展示了如何使用作为 JDK 一部分提供的新 REPL 工具和 JShell。

第 13 章“使用新的日期和时间 API*”演示了如何构造时区相关和独立的日期和时间实例,如何在日期实例之间创建基于日期和时间的时段,如何表示历元时间,如何操作和比较日期和时间实例,如何使用不同的日历系统,以及如何使用DateTimeFormatter设置日期格式。

第 14 章“测试”解释了如何在 API 与其他组件集成之前对其进行单元测试,包括使用一些虚拟数据的桩依赖和模拟依赖。我们还将向您展示如何编写夹具来填充测试数据,以及如何通过集成不同的 API 并测试它们来测试您的应用程序行为。

第 15 章“使用 Java 10 和 Java 11 进行编码的新方法”,演示了如何使用局部变量类型推断,以及何时和如何使用局部变量语法进行 Lambda 参数。

第 16 章“使用 JavaFX 的 GUI 编程”,说明如何使用 JavaFX 使用 FXML 标记和 CSS 创建 GUI。它将演示如何创建条形图、饼图、折线图和面积图。它还将展示如何在应用程序和媒体源中嵌入 HTML,以及如何向控件添加效果。此外,我们还将在 OpenJFX11 更新中了解最新发布的机器人 API。

充分利用这本书

为了充分利用这本书,需要一些 Java 知识和运行 Java 程序的能力。此外,它有助于安装和配置您最喜欢的编辑器,或者更好的是,安装和配置 IDE 以便在菜谱中使用。因为这本书本质上是一个食谱的集合,每一个食谱都基于特定的例子,如果读者不执行提供的例子,这本书的好处就会失去。如果读者再现 IDE 中提供的每个示例,执行它,并将其结果与书中所示的结果进行比较,他们将从本书中获得更多。

下载示例代码文件

您可以从您的账户www.packt.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问这里并注册,将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册www.packt.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • 适用于 Windows 的 WinRAR/7-Zip
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上。我们的丰富书籍和视频目录中还有其他代码包,请访问这里。看看他们!

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“使用ProcessHandle接口上的allProcesses()方法获取当前活动进程的流”

代码块设置如下:

public class Thing {
  private int someInt;
  public Thing(int i) { this.someInt = i; }
  public int getSomeInt() { return someInt; }
  public String getSomeStr() { 
    return Integer.toString(someInt); }
} 

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

Object[] os = Stream.of(1,2,3).toArray();
 Arrays.stream(os).forEach(System.out::print);
 System.out.println();
 String[] sts = Stream.of(1,2,3)
                      .map(i -> i.toString())
                      .toArray(String[]::new);
 Arrays.stream(sts).forEach(System.out::print);

任何命令行输入或输出的编写方式如下:

jshell> ZoneId.getAvailableZoneIds().stream().count()
$16 ==> 599

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“右键单击我的计算机,然后单击属性。您将看到 您的系统信息。”

警告或重要提示如下所示。

提示和技巧如下所示。

小节

在这本书中,你会发现几个经常出现的标题(“准备”、“操作步骤”、“工作原理”、“更多”、“另见”。要明确说明如何完成配方,请使用以下部分:

准备

本节告诉您配方中的预期内容,并介绍如何设置配方所需的任何软件或任何初步设置。

怎么做…

本节包含遵循配方所需的步骤。

它是如何工作的…

本节通常包括对上一节中发生的情况的详细解释。

还有更多…

本节包含有关配方的附加信息,以使您更了解配方。

另见

本节提供了有关配方的其他有用信息的有用链接。