java8
带你一览炫酷的java8技术
PostTruth
书写是对思维的缓存
展开
-
java8实战一:通过行为参数化传递代码
通过行为参数化传递代码 如何对你的代码加以改进,从而更灵活地适应不断变化的需求?行为参数化就是可以帮你处理频繁变更的需求的一种软件开发模式.一言以蔽之,它意味 着拿出一个代码块,把它准备好却不去执行它。这个代码块以后可以被你程序的其他部分调用, 这意味着你可以推迟这块代码的执行。例如,你可以将代码块作为参数传递给另一个方法,稍后 再去执行它。这样,这个方法的行为就基于那块代码被参数化了。原创 2017-11-24 13:59:32 · 1554 阅读 · 0 评论 -
java8实战二:Lambda 表达式
Lambda 表达式前片文章讲到,使用匿名类来表示不同的行为并不令人满意:代码十分啰嗦,这会影响程序 员在实践中使用行为参数化的积极性。在本章中,我们会教给你Java 8中解决这个问题的新工 具——Lambda表达式。它可以让你很简洁地表示一个行为或传递代码。现在你可以把Lambda 表达式看作匿名功能,它基本上就是没有声明名称的方法,但和匿名类一样,原创 2017-11-24 14:09:55 · 726 阅读 · 0 评论 -
java8实战三:函数式数据处理--流
函数式数据处理(一)–流引入流集合是Java中使用最多的API。要是没有集合,还能做什么呢?几乎每个Java应用程序都会制 造和处理集合。集合对于很多编程任务来说都是非常基本的:它们可以让你把数据分组并加以处 理。很多业务逻辑都涉及类似于数据库的操作,比如对几道菜按照类别进行分组 (比如全素 菜肴),或查找出最贵的菜。你自己用迭代器重新实现过这些操作多少遍?大部分数据库 都允许你声明式地指原创 2017-11-24 14:13:22 · 931 阅读 · 0 评论 -
java8实战四:使用流--Stream
使用流在本章中,你将会看到许多Stream API支持的许多操作.这些操作能让你快速完成许多复杂的查询.如筛选、切片、映射、查找、匹配和归约。 接下来,我们会看到一些特殊的流:数值流,来自文件和数组等多种来源的流,最后是无限流.1 筛选和切片在本节中,我们来看看如何选择流中的元素:用谓词筛选,筛选出各不相同的元素,忽略流 中的头几个元素,或将流截短至指定长度。1.1 用谓词筛选filter()方原创 2017-11-24 14:18:45 · 6687 阅读 · 3 评论 -
java8实战五:用流收集数据
用流收集数据我们已经在前面两篇文章中用过 collect 终端操作了,当时主要是用来把 Stream 中所有的 元素结合成一个 List 。在本章中,你会发现 collect 是一个归约操作,就像 reduce 一样可以接 受各种做法作为参数,将流中的元素累积成一个汇总结果。具体的做法是通过定义新的 Collector 接口来定义的,因此区分 Collection 、 Collector 和原创 2017-11-24 14:22:36 · 730 阅读 · 0 评论 -
java8实战六:并行流
并行流在java7之前,处理并行数据非常麻烦. 第一:你得明确的把包含的数据结构分成若干子部分. 第二:你要给每个子部分分配独立的线程. 第三:你需要在恰当的时候对他们进行同步,来避免不希望出现的竞争条件,等待所有线程完成,最后把这些结果合并起来.在前面的文章中,我们介绍了 Stream接口,让你可以很方便的处理它的元素,可以调用ParallelStream 方法把集合转换成并行流.并行流就是原创 2017-11-24 14:26:00 · 987 阅读 · 0 评论 -
java8实战八:java8----默认方法
默认方法传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接 口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实的情况是:现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改。通过前面的介绍我们知道,java8在现存的API接口上引入了很多原创 2017-11-24 14:28:55 · 1356 阅读 · 0 评论 -
java8之----Optional取代null
java8之—-Optional取代null小结:null在历史上被引入到程序设计语言中,目的是为了表示变量值的缺失.Java 8中引入了一个新的类 java.util.Optional ,对存在或缺失的变量值进行建模。你可以使用静态工厂 Optional.empty(), Optional.of(),Optional.ofNullable 创建Optional对象.Optional类支持多原创 2017-11-24 14:29:43 · 448 阅读 · 0 评论 -
java8实战十一: java8----新的日期时间API
java8中 新的时间和日期APIJava的API提供了很多有用的组件,能帮助你构建复杂的应用。不过,Java API也不总是完美 的。我们相信大多数有经验的程序员都会赞同Java 8之前的库对日期和时间的支持就非常不理想。 然而,你也不用太担心:Java 8中引入全新的日期和时间API就是要解决这一问题。为了解决 这些问题,Oracle决定在原生的Java API中提供高质量的日期和时间支持原创 2017-12-02 16:10:11 · 8315 阅读 · 0 评论