BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

书评:《All About Java 8 Lambdas》

| 作者 Alex Blewitt 关注 4 他的粉丝 ,译者 张卫滨 关注 13 他的粉丝 发布于 2016年6月8日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

将这本书命名为《All About Java 8 Lambdas》其实并不公平。实际上,它包含了Java 8中新加入特性的大量信息,包括了lambdas,但是还有很多很多。这本书被描述为“周末读物”,它只有150多页,如此简洁的篇幅当然配得上这种叫法。

这本书的内容分为14章,可划分为三部分,第一部分介绍了lambdas,中间一部分介绍了predicate和函数式接口类型以及函数式组合,最后一部分专门用来介绍流和流处理,包括并行处理和顺序处理,用到了之前的lambdas和函数。这些章节非常完美地组合在一起,它还阐述了Java 8中一些其他的特性,如接口中的静态和默认方法以及方法和构造器引用。

这些章节本身都经过深思熟虑并且具有逻辑性,带有样例和代码片段,这些代码可以在本书的GitHub仓库中获取。实际上,几乎所有的页面上都有示例代码,并且会有文字来阐述这些特定的代码片段是做什么的。

在起始的时候,会为读者展现一些新的语法类型,在概述这一章将会介绍lambdas的目的并阐述内联lambdas和方法引用。接下来,会用几章的篇幅剖析样例,更加详细地介绍语法和它们所能应用的特定场景。

该书对函数式编程的介绍是从函数的目的以及FunctionalInterface注解开始的。然后介绍更为具体的类型,如PredicateConsumerSupplierBiFunction,中间会包含每种类型的样例。尽管作者可以就此收笔,但他同时也展示了如何将函数式的结果链接在一起,并使用它们来构建处理链。

该书在最后的章节介绍了流,包括如何mapflatMap函数以及对集合进行stream处理,其中包含原始类型流与其面向对象版本的效率对比。

对流的介绍随后转移到了optional类型上,以及它们如何进行chain/map操作,同时还介绍了分组操作,该操作允许数据基于特定的数据结构打散并进行pivot计算。

最后,讨论了顺序和并行流处理的差异,并给出了一些建议,指出在特定场景下哪种类型的更为合适。

尽管本书声称只讨论lambdas,但是它涉及了Java 8中众多的新特性。它没有讨论到的是一些新的API,如java.time包,当然本书也没有承诺会介绍这些内容。这本书涉及到了Java语言本身所有的语法变更,以及java.util.function包中的新API。

该书唯一缺失的就是索引。如果你有电子版本的话,这可能算不上什么问题,因为你可以进行全文搜索来查找要引用的内容,但是如果你所购买的是纸质版本的话,那么起始的章节目录就是进行查找的唯一方式了。假如我们能够定位到正确章节的起始点,因为每章都很短再加上内部的标题,所以查找特定的内容相对来讲都很容易。

如果你只有一个周末的时间来了解Java 8语言的新特性的话,那么这本书是一个绝佳的开端。

关于作者

Madhusudhan Konda——我是一名Java开发人员,目前在伦敦工作,主要服务于投资银行和金融组织。我使用Java平台已经超过15年了。我开始是C / C++程序员,当我在印度的IIT Kharagpur攻读硕士学位时,我快速学习了Java。从那时我就深爱上了这门语言,并且沿着这条道路一直走到了现在。

查看英文原文:Book Review: All About Java 8 Lambdas

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

可以看看 by 音 弦

不错

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT