java布道者耗尽20年的功力整理完结java实战第2版文档

前言简单地说 , Java 8中的新增功能以及Java 9引入的变化(虽然并不显著)是自Java 1.0发布21年以来 , Java发生的最大变化 。 这一演进没有去掉任何东西 , 因此你原有的Java代码都能工作 , 但新功能提供了更强大的新习语和新设计模式 , 能帮助你编写更清晰、更简洁的代码 。 就像遇到所有新功能时那样 , 你一开始可能会想:“为什么又要去改我的语言呢?”但稍加练习之后 , 你就会发觉自己只用预期的一半时间 , 就用新功能写出了更短、更清晰的代码 , 这时你会意识到自己永远无法返回到“旧Java”了 。
本文会帮助你跨过“原理听起来不错 , 但还是有点儿新 , 不太适应”的门槛 , 从而熟练地编程 。
“也许吧 , ”你可能会想 , “可是Lambda、函数式编程 , 这些不是那些留着胡子、穿着凉鞋的学究们在象牙塔里面琢磨的东西吗?”或许是的 , 但Java 8中加入的新想法的分量刚刚好 , 它们带来的好处也可以被普通的Java程序员所理解 。
本文会从普通程序员的角度来叙述 , 偶尔谈谈“这是怎么来的” 。
“Lambda , 听起来跟天书一样!”是的 , 也许是这样 , 但它是一个很好的想法 , 让你可以编写简明的Java程序 。 许多人都熟悉事件处理器和回调函数 , 即注册一个对象 , 它包含会在事件发生时使用的一个方法 。
Lambda使人更容易在Java中广泛应用这种思想 。 简单来说 , Lambda和它的朋友“方法引用”让你在做其他事情的过程中 , 可以简明地将代码或方法作为参数传递进去执行 。
在本文中 , 你会看到这种思想出现得比预想的还要频繁:从加入做比较的代码来简单地参数化一个排序方法 , 到利用新的Stream API在一组数据上表达复杂的查询指令 。
“流(stream)是什么?”这是Java 8的一个新功能 。 它的特点和集合(collection)差不多 , 但有几个明显的优点 , 让我们可以使用新的编程风格 。 首先 , 如果你使用过SQL等数据库查询语言 , 就会发现用几行代码写出的查询语句要是换成Java要写好长 。 Java 8的流支持这种简明的数据库查询式编程——但用的是Java语法 , 而无须了解数据库!其次 , 流被设计成无须同时将所有的数据调入内存(甚至根本无须计算) , 这样就可以处理无法装入计算机内存的流数据了 。 但Java 8可以对流做一些集合所不能的优化操作 , 例如 , 它可以将对同一个流的若干操作组合起来 , 从而只遍历一次数据 , 而不是花很大成本去多次遍历它 。 更妙的是 , Java可以自动将流操作并行化(集合可不行) 。
“还有函数式编程 , 这又是什么?”就像面向对象编程一样 , 它是另一种编程风格 , 其核心是把函数作为值 , 前面在讨论Lambda的时候提到过 。
Java 8的好处在于 , 它把函数式编程中一些最好的想法融入到了大家熟悉的Java语法中 。 有了这个优秀的设计选择 , 你可以把函数式编程看作Java 8中一个额外的设计模式和习语 , 让你可以用更少的时间 , 编写更清晰、更简洁的代码 。 想想你的编程兵器库中的利器又多了一样 。
当然 , 除了这些在概念上对Java有很大扩充的功能 , 我们也会解释很多其他有用的Java 8功能和更新 , 如默认方法、新的Optional类、CompletableFuture , 以及新的日期和时间API 。
Java 9的更新包括一个支持通过Flow API进行反应式编程的模块系统 , 以及其他各种增强功能 。
java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
下面将带大家 , 从目录、主要内容一步步来走进java实战第二版 , 因为全文包含的内容比较多 , 所以小编只把部分知识点拿出来给大家做一个介绍 , 需要完整版的小伙伴 , 可以转发此文关注小编 , 私信【技术】来获取!!希望本文能够得到大家的喜欢!!
目录
java布道者耗尽20年的功力整理完结java实战第2版文档文章插图
主要内容本文分为六个部分 , 分别是:“基础知识”“使用流进行函数式数据处理”“使用流和Lambda进行高效编程”“无所不在的Java”“提升Java的并发性”和“函数式编程以及Java未来的演进” 。 我们强烈建议你按顺序阅读前两部分的内容 , 因为很多概念都需要前面的章节作为基础 , 后面四个部分的内容你可以按照任意顺序阅读 。 大多数章节都附有几个测验 , 可以帮助你学习和掌握这些内容 。
第一部分旨在帮助你初步使用Java 8 。 学完这一部分 , 你将会对Lambda表达式有充分的了解 , 并可以编写简洁而灵活的代码 , 能够轻松适应不断变化的需求 。