【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

书评:《All About Java 8 Lambdas》

  • 2016-06-07
  • 本文字数:1233 字

    阅读完需:约 4 分钟

将这本书命名为《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

2016-06-07 19:353429

评论

发布
暂无评论
发现更多内容

使用自定义注解打印logstash日志

小鲍侃java

签约计划第二季

logback获取bootstrap.yml配置

小鲍侃java

签约计划第二季

安全RCE之未授权访问分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

低代码发展正当时,中国将取代美国成为低代码开发的全球领导者

金小K

RPA 低代码 低代码开发 低代码平台

elk客户端与springboot整合

小鲍侃java

签约计划第二季

在有道 | 同宇:一个正在老去的程序员

有道技术团队

程序员 技术人 工程师思维 人物访谈

elk简介与背景

小鲍侃java

签约计划第二季

Istio 实践手册 |服务网格框架对比

xcbeyond

istio 28天写作 12月日更 Istio 实践手册

云编辑 | 使用 Cloud Studio 在线撰写预览并发布 Hugo 博客

宋天伦

CloudIDE Hugo Cloud Studio

质量服务“一站式”平台搭建,NQI一站式云服务平台

电微13828808271

基于云的技术架构设计实践-第2篇

hackstoic

监控系统 签约计划第二季

使用logstash监控微服务项目,并制定索引格式

小鲍侃java

签约计划第二季

在 ABAP 里模拟实现 Java Spring 的依赖注入

Jerry Wang

Java 28天写作 SAP abap 12月日更

荣耀周榜公布!你上榜了么?2022.1.17-1.23

InfoQ写作社区官方

话题讨论 热门活动

编曲时如何在FL Studio卷帘窗口修改单个音符音量

懒得勤快

VirtualBox 网络配置 NAT + Host-Only

李鑫磊

Kubernetes 虚拟机 网络配置 virtualbox

Linux一学就会之Centos-文件权限管理

学神来啦

云计算 Linux centos linux运维

一个基于HTML的可定制轮盘——帮你告别选择困难症

海拥(haiyong.site)

html 大前端 28天写作 签约计划第二季 12月日更

数据中台的OneID是个什么鬼

用友BIP

数据中台 主数据

面试腾讯:渗透测试工程师题型汇总

喀拉峻

面试 网络安全 安全 渗透测试

ONES 与极狐(GitLab)战略合作,强强联手推动 DevOps 发展

万事ONES

DevOps SaaS ONES #GitLab

数仓和数据中台长期霸权,数据湖最稳

用友BIP

数据胡

自定义View:使用二阶贝塞尔曲线绘制正弦函数

Changing Lin

12月日更

高可用 | repmgr 构建 PostgreSQL 高可用集群部署文档【建议收藏】

RadonDB

数据库 postgresql RadonDB

在 Windows 笔记本上调试运行在 iOS 设备上的前端应用

Jerry Wang

大前端 web api iOS Developer 28天写作 12月日更

vue全家桶合集

法医

大前端 内容合集 签约计划第二季

大型前端项目 DevOps 沉思录 —— CI 篇d

CODING DevOps

ci DevOps 持续集成 工作流

使用logstash获取springboot控制台日志并传输到elasticsearch

小鲍侃java

签约计划第二季

【11月】InfoQ写作平台荣耀月报:名单出炉!

InfoQ写作社区官方

话题讨论 热门活动

数据库自增 ID 用完了会咋样?

CRMEB

小企业如何落地elk日志收集系统

小鲍侃java

内容合集 签约计划第二季

书评:《All About Java 8 Lambdas》_Java_Alex Blewitt_InfoQ精选文章