it光

学而时习之,温故而知新!

java8实战十一: java8----新的日期时间API

java8中 新的时间和日期APIJava的API提供了很多有用的组件,能帮助你构建复杂的应用。不过,Java API也不总是完美 的。我们相信大多数有经验的程序员都会赞同Java 8之前的库对日期和时间的支持就非常不理想。 然而,你也不用太担心:Java 8中引入全新的日期和时间API就是要...

2017-12-02 16:10:11

阅读数:509

评论数:0

java8实战十:CompletableFuture 组合式异步编程

CompletableFuture 组合式异步编程本节内容: 创建异步计算并获取计算结果. 使用非阻塞操作提升吞吐量. 设计和实现异步API. 如何以异步的方式使用同步的API. 如何对两个或多个异步操作进行流水线和合并操作. 如何处理异步操作的完成状态. 现在,很少有网站或者网络应用会以完全隔离...

2017-11-24 14:31:57

阅读数:278

评论数:0

java8之----Optional取代null

java8之—-Optional取代null小结: null在历史上被引入到程序设计语言中,目的是为了表示变量值的缺失. Java 8中引入了一个新的类 java.util.Optional ,对存在或缺失的变量值进行建模。 你可以使用静态工厂 Optional.empty(), Optional...

2017-11-24 14:29:43

阅读数:77

评论数:0

java8实战八:java8----默认方法

默认方法传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接 口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实的情况是:现存的实体类往往不在接口设计者的控制范围之内,这些实...

2017-11-24 14:28:55

阅读数:351

评论数:0

java8实战七:使用Lambda重构面向对象的设计模式

使用Lambda重构面向对象的设计模式查看栈跟踪流操作调试技巧peeek:偷看;一瞥,看一眼假设你试图对流操作中的流水线进行调试,该从何入手呢?你可以像下面的例子那样,使用 forEach 将流操作的结果日志输出到屏幕上或者记录到日志文件中: @org.junit.Test public...

2017-11-24 14:27:35

阅读数:74

评论数:0

java8实战六:并行流

并行流在java7之前,处理并行数据非常麻烦. 第一:你得明确的把包含的数据结构分成若干子部分. 第二:你要给每个子部分分配独立的线程. 第三:你需要在恰当的时候对他们进行同步,来避免不希望出现的竞争条件,等待所有线程完成,最后把这些结果合并起来.在前面的文章中,我们介绍了 Stream接口...

2017-11-24 14:26:00

阅读数:160

评论数:0

java8实战五:用流收集数据

用流收集数据我们已经在前面两篇文章中用过 collect 终端操作了,当时主要是用来把 Stream 中所有的 元素结合成一个 List 。在本章中,你会发现 collect 是一个归约操作,就像 reduce 一样可以接 受各种做法作为参数,将流中的元素累积成一个汇总结果。具体的做法是通过定...

2017-11-24 14:22:36

阅读数:169

评论数:0

java8实战四:使用流--Stream

使用流在本章中,你将会看到许多Stream API支持的许多操作.这些操作能让你快速完成许多复杂的查询.如筛选、切片、映射、查找、匹配和归约。 接下来,我们会看到一些特殊的流:数值流,来自文件和数组等多种来源的流,最后是无限流.1 筛选和切片在本节中,我们来看看如何选择流中的元素:用谓词筛选,筛...

2017-11-24 14:18:45

阅读数:415

评论数:0

java8实战三:函数式数据处理--流

函数式数据处理(一)–流引入流集合是Java中使用最多的API。要是没有集合,还能做什么呢?几乎每个Java应用程序都会制 造和处理集合。集合对于很多编程任务来说都是非常基本的:它们可以让你把数据分组并加以处 理。 很多业务逻辑都涉及类似于数据库的操作,比如对几道菜按照类别进行分组 (比如全素...

2017-11-24 14:13:22

阅读数:159

评论数:0

java8实战二:Lambda 表达式

Lambda 表达式前片文章讲到,使用匿名类来表示不同的行为并不令人满意:代码十分啰嗦,这会影响程序 员在实践中使用行为参数化的积极性。在本章中,我们会教给你Java 8中解决这个问题的新工 具——Lambda表达式。它可以让你很简洁地表示一个行为或传递代码。现在你...

2017-11-24 14:09:55

阅读数:112

评论数:0

java8实战一:通过行为参数化传递代码

通过行为参数化传递代码 如何对你的代码加以改进,从而更灵活地适应不断变化的需求? 行为参数化就是可以帮你处理频繁变更的需求的一种软件开发模式.一言以蔽之,它意味 着拿出一个代码块,把它准备好却不去执行它。这个代码块以后可以被你程序的其他部分调用, 这意味着你可以推迟这块代码的执行。例如,你...

2017-11-24 13:59:32

阅读数:383

评论数:0

分支/合并框架详解

分支/合并框架详解分支框架的目的是以递归的方式将可以并行的任务拆分成更小的任务,然后将每个子任务的结果合并起来生成整体结果.它是 ExecutorService 接口的一个实现,他把子任务分配给线程池(ForkJoinPool)中的线程.使用 RecursiveTask要把任务提交到池,必须创建 ...

2017-11-18 15:30:48

阅读数:381

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭