java布道者耗尽20年的功力整理完结java实战第2版文档( 三 )


这些就是本章要讨论的内容 。 我们会介绍几种方法 , 帮助你重构代码 , 以适配使用Lambda表达式 , 让你维护的代码具备更好的可读性和灵活性 。 除此之外 , 还会讨论目前比较流行的几种面向对象的设计模式 , 包括策略模式、模板方法模式、观察者模式、责任链模式 , 以及工厂模式 , 在结合Lambda表达式之后变得更简洁的情况 。 最后会介绍如何测试和调试使用Lambda表达式和Stream API的代码 。
本章内容

  • 如何使用Lambda表达式重构代码
  • Lambda表达式对面向对象的设计模式的影响
  • Lambda表达式的测试
  • 如何调试使用Lambda表达式和Stream API的代码

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第10章也是这一版新增的 , 介绍依据领域特定语言(domain-specific language , DSL)实现API的思想 。 这不仅是一种强大的API设计方法 , 而且正变得越来越流行 。 Java中已经有API采用这种模式实现 , 譬如Comparator、Stream以及Collector接口 。
本章内容
  • 领域特定语言(domain-specifc language, DSL)及其形式
  • 为你的API添加DSL都有哪些优缺点
  • 除了简单的基于Java的DSL之外 , JVM还有哪些领域特定语言可供选择
  • 从现代Java接口和类中学习领域特定语言
  • 高效实现基于Java的DSL都有哪些模式和技巧
  • 常见Java库以及工具是如何使用这些模式的

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第四部分介绍Java 8和Java 9中新增的多个特性 , 这些特性能帮助程序员事半功倍地编写代码 , 让程序更加稳定可靠 。 我们首先从Java 8新增的两个API入手 。
第11章介绍java.util.Optional类 , 它能让你设计出更好的API , 并减少空指针异常 。
本章内容
  • null引用引发的问题 , 以及为什么要避免null引用
  • 从null到Optional:以null安全的方式重写你的域模型
  • 让Optional发光发热: 去除代码中对null的检查
  • 读取Optional中可能值的几种方法
  • 对可能缺失值的再思考

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第12章探讨新的日期和时间API , 这相对于以前涉及日期和时间时容易出错的API是一大改进 。
本章内容
  • 为什么在Java 8中需要引入新的日期和时间库
  • 同时为人和机器表示日期和时间
  • 定义时间的度量
  • 操纵、格式化以及解析日期
  • 处理不同的时区和历法

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第13章讨论默认方法是什么 , 如何利用它们来以兼容的方式演变API , 一些实际的应用模式 , 以及有效使用默认方法的规则 。
本章内容
  • 什么是默认方法
  • 如何以一种兼容的方式改进API
  • 默认方法的使用模式
  • 解析规则

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第14章是这一版新增的 , 探讨Java的模块系统——它是Java 9的主要改进 , 使大型系统能够以文档化和可执行的方式进行模块化 , 而不是简单地将一堆包杂乱无章地堆在一起 。
本章内容
  • 推进Java模块化之路的动力
  • 模块的主体结构:模块声明以及requires和exports指令
  • 针对Java归档文件(JAR)的自动模块
  • 模块化以及JDK库
  • 使用Maven构建多个模块
  • 概述requires和exports之外的模块指令

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第五部分探讨如何使用Java的高级特性构建并发程序——注意 , 我们要讨论的不是第6章和第7章中介绍的流的并发处理 。
第15章是这一版新增的 , 从宏观的角度介绍异步API的思想 , 包括Future、反应式编程背后的“发布–订阅”协议(封装在Java 9的Flow API中) 。
本章内容
  • 线程、Future以及推动Java支持更丰富的并发API的进化动力
  • 异步API
  • 从“线框与管道”的角度看并发计算
  • 使用CompletableFuture结合器动态地连接线框
  • 构成Java 9反应式编程Flow API基础的“发布–订阅”协议
  • 反应式编程和反应式系统

java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
第16章探讨CompletableFuture , 它可以让你用声明性方式表达复杂的异步计算 , 从而让StreamAPI的设计并行化 。
本章内容