助各位程序猿备战金九银十,分享一份技术书籍《Java 8 实战》PDF

Posted java路人甲乙丙丁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了助各位程序猿备战金九银十,分享一份技术书籍《Java 8 实战》PDF相关的知识,希望对你有一定的参考价值。

前言

在过去的几年中,我一直使用Java 8 进行了很多的编码工作,用于开发新应用和迁移遗留应用,我觉得是时候写一些有用的”最佳实践”。我个人不喜欢”最佳实践”这个术语,因为它意味着“一刀切”的解决方案,当然编码工作是不会这样的–这是因为我们开发人员会想出适合我们的方案。但我发现我对Java8特别的喜欢,它让我的生活更轻松一点。

Java的演变过程

Java从头到尾都是被设计成为一门面向对象的语言,所以时间长了,它就积累了很多的有用的库。从头开始,他就拥有多线程处理的能力。最重要的是Java里面有两个非常强大非常超前的两个概念:jvm和Java字节码。

Java虚拟机( JVM)及其字节码可能会变得比Java语言本身更重要,而且对于某些应用来说, Java可能会被同样运行在JVM上的竞争对手语言(如Scala或Groovy)取代 。

但是,编程语言生态系统的气候正在变化。程序员越来越多地要处理所谓的大数据(数百万兆甚至更多字节的数据集),并希望利用多核计算机或计算集群来有效地处理。意味着需要使用并行处理——Java以前对此并不支持。

Java 8对于程序员的主要好处在于它提供了更多的编程工具和概念,能以更快,更重要的是能以更为简洁、更易于维护的方式解决新的或现有的编程问题。

语言需要不断改进以跟进硬件的更新或满足程序员的期待 。

要坚持下去, Java必须通过增加新功能来改进,而且只有新功能被人使用,变化才有意义。所以,使用Java 8,你就是在保护你作为Java程序员的职业生涯。

 

目录

第—部分基础知识

第一部分包括3章,旨在帮助你初步使用Java 8。学完这一部分, 你将会对Lambda表达式有充分的了解,并可以编写简洁而灵活的代码,能够轻松适应不断变化的需求。

第1章为什么要关心ava 8

在第1章中,我们总结了Java的主要变化( Lambda表达式、方法引用、流和默认方法),并为学习后面的内容做好准备。 1.1 Java怎么还在变 1.1.1 Java在编程语言生态系统中的位置 1.1.2流处理 1.1.3用行为参数化把代码传递给方法. 1.1.4并行与共享的可变数据 1.1.5Java需要演变 1.2 Java中的函数 1.2.1方法和Lambda作为一等公民 1.2.2传递代码:一个例子 1.2.3从传递方法到Lambda- 1.3流 1.4默认方法 1.5来自函数式编程的其他好思想 1.6小结

 

第2章通过行为参数化传递代码

在第2章中,你将了解行为参数化,这是Java 8非常依赖的一 种软件开发模式,也是引人Lambda表达式的主要原因 2.1应对不断变化的需求 2.1.1初试牛刀:筛选绿苹果 2.1.2再展身手:把颜色作为参数 2.1.3 第三次尝试:对你能想到的每个属性做筛选 2.2行为参数化 2.3对付啰嗦 2.3.1匿名类 2.3.2第五次尝试:使用匿名类 2.3.3’第六次尝试:使用Lambda表达式 2.3.4’第七次尝试:将List类型抽象化 2.4真实的例子 2.4.1用Comparator来排序 2.4.2用Runnable执行代码块 2.4.3 GUI事件处理 2.5小结

第3章Lambda表达式

第3章全面地解释了Lambda表达式和方法引用,每- -步都有代码示例和测验。 3.1 Lambda管中窥豹 3.2在哪里以及如何使用Lambda 3.3把Lambda付诸实践:环绕执行模式工 3.4使用国数式接口i 3.5类型检查、类型推断以及限制 3.6方法引用 3.7 lambda和方法引用实战 3.8复合Lambda表达式的有用方法 3.9数学中的类似思想 3.10小结

 

 

第二部分函数式数据处理

第二部分仔细讨论了新的Stream API。学完这一部分, 你将充分理解流是什么,以及如何在Java应用程序中使用它们来简洁而高效地处理数据集。

第4章引入流

第4章介绍了流的概念,并解释它们与集合有何异同。 4.1流是什么. 4.2流简介. 4.3流与集合. 4.4流操作. 4.5小结

 

 

第5章使用流

第5章详细讨论了表达复杂数据处理查询可以使用的流操作。我们会谈到很多模式,如筛选、切片、查找、匹配、映射和归约。 5.1筛选和切片 5.2映射 5.3查找和匹配 5.4 归约 5.5付诸实践 5.6数值流 5.7构建流 5.8小结

 

第6章用流收集数据

第6章讲到了收集器- Stream API的- - 个功能,可以让你表达更为复杂的数据处理查询。 6.1收集器简介 6.2归约和汇总 6.3分组 6.4分区 6.5收集器接口 6.6开发你自己的收集器以获得更好的性能 6.7小结

 

 

第7章并行数据处理与性能

在第7章中,你将了解流如何得以自动并行执行,并利用多核架构的优势。此外,你还会学到为正确而高效地使用并行流,要避免的若干陷阱. 7.1并行流 7.2分支/合并框架 7.3 Spliterator 7.4小结

 

 

第三部分高效Java 8编程

第三部分探讨了能让你高效使用Java 8并在代码中运用现代语汇的若干内容。

第8章重构、测试和调试

第8章探讨了如何利用Java 8的新功能和一些秘诀来改善你现有的代码。此外,该章还探讨了一些重要的软件开发技术,如设计模式、重构、测试和调试。 8.1为改善可读性和灵活性重构代码 8.2使用Lambda重构面向对象的设计模式 8.3测试Lambda表达式 8.4调试 8.5小结

 

 

第9章默认方法

在第9章中,你将了解到默认方法是什么,如何利用它们来以兼容的方式演变API,一些实际的应用模式,以及有效使用默认方法的规则。 9.1不断演进的API 9.2概述默认方法 9.3默认方法的使用模式 9.4解决冲突的规则 9.5小结

 

第10章用Optional取代null

第10章谈到了新的java . util .0ptional类,它能让你设计出更好的API,并减少空指针异常。 10.1如何为缺失的值建模 10.2 Optional类入门 10.3应用Optional的几种模式 10.4使用Optional的实战示例 10.5小结

 

 

第11章CompletableFuture:组合式异步编程

第11章探讨了Completableruture,它可以让你用声明性方式表达复杂的异步计算,从而让Stream API的设计并行化。 11.1 Future接口 11.2实现异步API 11.3让你的代码免受阻塞之苦 11.4对多个异步任务进行流水线操作 11.5响应CompletableFuture的completion事件 11.6小结

 

 

第12章新的日期和时间API

第12章探讨了新的日期和时间API,这相对于以前涉及日期和时间时容易出错的API是 一大改进。 12.1 LocalDate 、 LocalTime 、 Instant 、 Duration 以及 Period 12.2操纵、解析和格式化日期 12.3处理不同的时区和历法 12.4小结

 

第四部分超越Java 8

在本书最后一 部分,我们会返回来谈谈怎么用Java编写高效的函数式程序,还会将Java 8的功能和Scala作- - 比较。

第13章函数式的思考

第13章是一个完整的函数式编程教程,介绍了-些术语,并解释了如何在Java 8中编写函数式风格的程序。 13.1实现和维护系统 13.2什么是函数式编程 13.3递归和迭代 13.4小结

 

 

第14章函数式编程的技巧

第14章涵盖了更高级的函数式编程技巧,包括高阶函数、科里化、持久化数据结构、延迟列表和模式匹配。你可以把这一章看作- - 种融合,既有可以用在代码库中的实际技术,也有让你成为更渊博的程序员的学术知识。 14.1无处不在的函数 14.2持久化数据结构 14.3 Stream的延迟计算 14.4模式匹配 14.5杂项14.6小结

 

 

第15章面向对象和函数式编程的混合:Java 8和Scala的比较

第15章对比了Java 8的功能与Scala的功能。Scala和Java- -样,是-种实施在JVM上的语言,近年来迅速发展,在编程语言生态系统中已经威胁到了Java的--些方面。 15.1 Scala简介 15.2国数 15.3类和trait 15.4小结

 

 

第16章结论以及Java的未来

在第16章我们会回顾这段学习Java 8并慢慢走向函数式编程的历程。此外,我们还会猜测,在Java8之后,未来可能还有哪些增强和新功能出现。 16.1回顾Java 8的语言特性 16.2 Java的未来 16.3写在最后的话

 

附录A其他语言特性的更新 附录B类库的更新 附录C如何以并发方式在同一个流上执行多种操作 附录DLambda表达式和JVM字节码

 

 

内容可以说更全面,并且加入 Java 8 的知识点,比如说最具代表性的流和函数式编程。与此同时,删除了已经被淘汰的 AWT 和 Swing 相关内容。

良心啊!

总结

Java 8的发布使Java程序设计发生了翻天覆地的变化。利用Java 8中新引入的函数式特性,你可以在更短的时间内用更简洁的代码完成更复杂的功能,同时还能充分利用硬件的多核架构。

本书结构清晰、内容翔实,从实例入手,涵盖Java 8的主要新特性,包括L ambda表达式、方法引用、流、默认方法、 optional.CompletableFuture以及新的日期和时间!API,是程序员了解Java 8新特性的终极指南。

由于篇幅限制,就不一一展示了,有需要文中资料完整版的小伙伴们注意啦:一键三连(点赞+收藏+关注)

以上是关于助各位程序猿备战金九银十,分享一份技术书籍《Java 8 实战》PDF的主要内容,如果未能解决你的问题,请参考以下文章

备战金九银十,牢记这份Java面经,大厂在向你招手

2021最新Java面试笔试题目分享,赶快收藏备战金九银十!

献给备战金九银十的码农,阿里内部Java全线成长宝典,从P5到P8一应俱全

金三银四斩获四个大厂offer的Java面经,助各位程序员征战金九银十

备战金九银十:三面百度,我的面试经历分享,助你秋招一臂之力

阿里P8整理总结,备战金九银十入职大厂必备Android核心知识,附加面试题