欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

腾讯t4架构详解Java8函数式编程

程序员文章站 2023-02-21 13:46:54
本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。传送门:https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 前 ......

本人免费整理了java高级资料,涵盖了java、redis、mongodb、mysql、zookeeper、spring cloud、dubbo高并发分布式等教程,一共30g,需要自己领取。
传送门:https://mp.weixin.qq.com/s/osb-bol6w-zltstttkqmpq

前言

多年以来,函数式编程被认为是少数人的游戏,这些人总是强调自己在智力上的优越性,认为函数式编程的智慧不适合推广给普罗大众。写作此书的目的就是为了挑战这种思想,函数式编程并没有多么了不起,也绝不是少数人的游戏。
在过去的两年中,我请伦敦java社区的开发人员以各种方式测试java8的新特性。我发现很多人都喜欢java 8的新用法和类库。他们有可能被一些术语和高大上的概念吓到,但是稍稍一丁点儿函数式编程技巧都能给编程带来便利,他们对此喜不自胜。人们津津乐道的话题之一是使用新的streamapi操作对象和集合类时(比如从所有的唱片列表中过滤出在英国本地出品的唱片时),代码是多么易读。
组织这些java社区活动,让我认识到了示例代码的重要性。人们通过不断地阅读和消化这些简单的示例,最终归纳出某种模式。我还意识到术语是多么令人讨厌,因此,在介绍一个晦涩的概念时,我都会给出通俗易懂的解释。对很多人来说,java 8提供的函数式编程元素有限:没有单子',没有语言层面的惰性求值,也没有为不可变性提供额外支持。对实用至上的程序员来说,这没什么大不了的,我们只想在类库级别抽象,写出简单干净的代码来解决业务问题。如果有人为我们写出这样的内库,那再好不过了,这样我们]就可以把主要精力放在日常工作上了。

为什么要阅读本书

本书将探讨如下主题。
●如何编写出简单、干净、易读的代码一 尤其是对于集合的操作?
●如何简单地使用并行计算提高性能?
●如何准确地为问题建模,并且开发出更好的领域特定语言?
●如何写出不易出错,并且更简单的并发代码?
●如何测试和调试lambda表达式?
将lambda表达式加入java,并不只是为了提高开发人员的生产效率,业界也对这一特性有根本性的需求。

本书读者对象

本书面向那些已经掌握javase,并且想尽快了解java8新特性的开发人员。
如果你对lambda表达式感兴趣,想知道它怎么帮助你提升专业技能,那么这本书就是为你而写的。我假设读者还不知道lambda表达式,以及java 8中核心类库的变化,我将从零开始介绍这些概念、类库和技术。
虽然我想让所有开发人员都来买这本书,但这不现实,这不是一-本适合所有人的书。如果你一点儿也不懂java,那么这本书就不适合你。同时,尽管本书会详细讲解java中的lambda表达式,但是我不会解释怎样在其他语言中使用lambda表达式。
我也不会讲解java se中一些基本的概念,比如集合类、匿名内部类或者swing中的事件处理机制。我假设读者已经掌握了这些知识。

怎样阅读本书

本书采用了示例驱动的写作风格:介绍完一个概念之后, 就会紧跟一段代码。代码中的一些片段,有时你可能无法全部看懂。没关系,通常在代码后面会紧跟一段 文字,讲解代码的细节。
这种方式能让你边学边练,多数章节还在最后提供了练习题,供读者自行练习。我强烈建议读者读完一章后完成这些练习,熟能生巧。每个务实的程序员都知道,自欺欺人很容易,你觉得读懂一段代码了 ,其实还是遗漏了一些细节。
使用lambda表达式,就是将复杂性抽象到类库的过程。在本书中,我会引入很多常用内库的细节。第2章至第6章介绍了jdk8中核心语言的变化以及升级后的类库。
最后三章介绍了如何在真实环境下使用函数式编程。第7章介绍一些让测试和调试lambda表达式变得容易的技巧;第8章解释现有的那些良好的软件设计原则如何应用到lambda表达式上;第9章讨论并发,怎样使用lambda表达式写出易读且易于维护的并发代码。涉及第三方类库时,这些章节也会加以介绍。读者可以将前四章当作java8的入门指南一要用好java8,每个人都必须学会这些知识。
后面的几章难度略高,但掌握了这几章的内容,你就可以成为知识更加全面的程序员,在自己的设计中得心应手地使用lambda表达式。你在不断学习的过程中,也会接触大量的练习,答案可以在github (ttps:/github.com/richardwarburton/java-8-lambdas -exercises)上找到。如果你能边学边练,就能迅速掌握lambda表达式。

目录

第 1 章 简介:在开始探索lambda表达式之前,首先我们要知道它因何而生。本章将介绍lambda表达式产生的原因,以及本书的写作动机和组织结构。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 2 章 lambda表达式:java 8的最大变化是引入了lambda表达式一一种 紧凑的、传递行为的方式。它也是本.书后续章节所述内容的基础,因此,接下来就了解-一下什么是lambda表达式。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 3 章 流:java8中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的
一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的api和新引入的流(stream)。流使程序员得以站在更高的抽象层次上对集合进行操作。本章会介绍strean类中的一组方法, 每个方法都对应集合上的一种操作。

腾讯t4架构详解Java8函数式编程

 

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 4 章 类库:本章还对前3章疏漏的知识点进行补充,比如,lambda表达式方法重载的工作原理、基本类型的使用方法等。使用lambda表达式编写程序时,掌握这些知识非常重要。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 5 章 高级集合类和收集器:第3章只介绍了集合类的部分变化,事实上,java8对集合类的改进不止这些。现在是时
候介绍一些高级主题了,包括新引入的collector类。同时我还会为大家介绍方法引用,它可以帮助大家在lambda表达式中轻松使用已有代码。编写大量使用集合类的代码时,使用方法引用能让程序员获得丰厚的回报。本章还会涉及集合类的一一些更高级的主题,比如流中元素的顺序,以及一些有用的api。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 6 章 数据并行化:本章主要内容并不在于如何更改代码,而是讲述为什么需要并行化和什么时候会带来性能的提升。要提醒大家的是,本章并不是关于 java 性能的泛泛之谈,我们只关注 java 8 轻松提升性能的技术。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 7 章 测试、调试和重构:本章主要探讨如何在代码中使用 lambda 表达式的技术,也会说明什么情况下不应该(直
接)使用 lambda 表达式。本章还讲述了如何调试大量使用 lambda 表达式和流的程序。

腾讯t4架构详解Java8函数式编程

 

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 8 章 设计和架构的原则:本章将探索如何使用 lambda 表达式实现 solid 原则,该原则是开发良好面向对象程序的
准则。使用 lambda 表达式,还能改进一些现有的设计模式,本章也会为大家简要介绍几个这样的例子。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 9 章 使用lambda表达式编写并发程序:本 章 的 一 些 例 子 用 到 了 vert.x(http://vertx.io/) 和rxjava(https://github.com/netflix/rxjava)框架,但其中展现的设计原则是通用的,对其他框架或是自己编写的、没有使用
任何框架的程序也适用。

腾讯t4架构详解Java8函数式编程

 

腾讯t4架构详解Java8函数式编程

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


第 10 章 下一步该怎么办:这里给出一些开放性的练习,没有标准答案,理解这些问题能够指导读者接下来的学习过程。

腾讯t4架构详解Java8函数式编程

 

 

腾讯t4架构详解Java8函数式编程