标签
内容简介
《Java 8实战》是《Java 8 in Action: Lambdas, Streams, and Functional-Style Programming》的中文译本,由陆明刚、劳佳翻译,人民邮电出版社2016年4月出版,属图灵程序设计丛书Java系列。全书围绕Java 8这一里程碑版本引入的核心变化展开:用行为参数化把代码作为数据传递,用Lambda表达式和方法引用替代冗长的匿名类,用Stream API以声明式方式完成筛选、映射、归约、分组与分区,用默认方法在不破坏既有实现的前提下演进API,用Optional替代随处可见的null检查,用CompletableFuture组织组合式异步流程,并用java.time新日期时间API解决旧Date/Calendar的种种缺陷。全书分四部分:基础知识(第1—3章,讲清为什么要关心Java 8、行为参数化与Lambda)、函数式数据处理(第4—7章,流、收集器、并行流与分支/合并框架、Spliterator)、高效Java 8编程(第8—12章,重构测试调试、默认方法、Optional、CompletableFuture、新日期时间API)以及超越Java 8(第13—16章,函数式思考与技巧、与Scala的比较、Java的未来展望)。书中以大量可直接运行的示例贯穿,从筛选苹果、交易员与交易、在线折扣服务等场景出发,把抽象概念落到代码上,读后能立即用于重构既有项目。
编辑推荐
很多Java 8新特性的资料都只讲到“语法怎么写”,而这本书讲的是“为什么这么设计、什么时候该用、什么时候会踩坑”。三位作者背景扎实:厄马是剑桥计算机博士、Cambridge Coding Academy联合创始人,富斯科是Red Hat高级工程师、Drools规则引擎核心开发者,米克罗夫特是剑桥计算机实验室教授、树莓派基金会联合创始人和理事——理论深度与工程落地的两端都占住了。 结构安排相当友好:先用一个“筛选苹果”的例子把行为参数化讲透,再自然过渡到Lambda与方法引用,读者几乎感觉不到概念的跳跃;流的中间操作与终端操作、收集器的分组分区、并行流的正确用法,都配了可以直接跑的代码。第三部分更贴近真实工作:如何把匿名类逐步重构为方法引用、如何测试和调试含Lambda的代码、如何用Optional和CompletableFuture改造旧的null检查与阻塞式调用。 对于仍在维护Java 8代码库的团队,这本书的意义不只是学新语法,而是提供一套可以落地到代码评审里的现代化写法。豆瓣9.1分、七百余人评价,多年稳居Java进阶书单前列,属于买了不会后悔的技术书。
适合谁读
适合
- 已有Java基础语法、想系统补上Java 8新特性的初中级开发者
- 公司代码库仍在Java 8、需要重构遗留代码的工程师
- 准备面试中被频繁问及Lambda、Stream、Optional的程序员
- 想把命令式代码转向函数式风格的架构师与技术负责人
不适合
- 完全没有Java基础、连集合与接口都不熟悉的入门读者
- 只想学Java 17或更高版本最新特性的读者,可改看本书的更新版本
- 期待纯理论语言学研究而非工程实践的读者
阅读建议
- 建议边读边敲代码:把书中苹果筛选、交易员交易等例子亲手重构成Lambda与Stream版本
- 第一至三章务必读透,行为参数化是理解全书后续内容的基础
- 第三部分的第8章可对照自己的项目做一次小范围重构实践
- 第四部分可视兴趣选读,初读可先跳过Scala比较一章
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第一部分 基础知识
- 第1章 为什么要关心Java 8
- 1.1 Java怎么还在变
- 1.2 Java中的函数
- 1.3 流
- 1.4 默认方法
- 1.5 来自函数式编程的其他好思想
- 1.6 小结
- 第2章 通过行为参数化传递代码
- 2.1 应对不断变化的需求
- 2.2 行为参数化
- 2.3 对付啰嗦
- 2.4 真实的例子
- 2.5 小结
- 第3章 Lambda表达式
- 3.1 Lambda管中窥豹
- 3.2 在哪里以及如何使用Lambda
- 3.3 把Lambda付诸实践:环绕执行模式
- 3.4 使用函数式接口
- 3.5 类型检查、类型推断以及限制
- 3.6 方法引用
- 3.7 Lambda和方法引用实战
- 3.8 复合Lambda表达式的有用方法
- 3.9 数学中的类似思想
- 3.10 小结
- 第二部分 函数式数据处理
- 第4章 引入流
- 第5章 使用流
- 第6章 用流收集数据
- 第7章 并行数据处理与性能
- 第三部分 高效Java 8编程
- 第8章 重构、测试和调试
- 第9章 默认方法
- 第10章 用Optional取代null
- 第11章 CompletableFuture:组合式异步编程
- 第12章 新的日期和时间API
- 第四部分 超越Java 8
- 第13章 函数式的思考
- 第14章 函数式编程的技巧
- 第15章 面向对象和函数式编程的混合:Java 8和Scala的比较
常见问题
这本书适合零基础学Java的人吗?
不太适合。本书默认读者熟悉Java基本语法、集合与接口,直接讲Lambda和流,零基础读者容易卡在示例代码上。建议先完成一本Java入门书,再用本书专门攻Java 8新特性。
这本书讲的Java 8特性和新版JDK还通用吗?
通用。Lambda、Stream、Optional、默认方法、CompletableFuture、java.time这些核心内容在Java 11、17、21中都保留并延续,只是新版本另有新特性。本书仍是理解这些基础机制的可靠材料。
豆瓣评分和页数是多少?
人民邮电出版社2016年4月版,349页,定价79元,ISBN 9787115419347,豆瓣评分约9.1(七百余人评价)。
这本书和《Java实战(第2版)》是什么关系?
本书译自《Java 8 in Action》;后续版本《Modern Java in Action》中译本名为《Java实战(第2版)》,覆盖到Java 9及之后的特性,内容有较大扩充。若项目已升级到新版本,可优先考虑后者。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。