java8 实战
zglx123
这个作者很懒,什么都没留下…
展开
-
Java8实战之(八)CompletableFuture: 组合式异步编程
CompletableFuture: 组合式异步编程本章内容Future接口future 接口的局限性使用CompletableFuture构建异步应用实现异步API异常处理ֵ使用工厂方法supplyAsync创建CompletableFuture让你的代码免受阻塞之苦ֵ用 CompletableFuture 发起异步请求寻找更好的解决方案使用定制的执行器对多个异步任务进行流水线操作实现折扣服务本章内容创建异步计算、并获取最终的结果使用非阻塞操作提升吞吐量设计和实现异步API如何以异步的方式使用原创 2020-11-15 23:35:48 · 408 阅读 · 0 评论 -
Java8实战之(七)重构、测试、调试
7 重构、测试、调试7.1 为改善可读性和灵活性重构代码7.1.1 改善代码的可读性跟之前的版本相比较,Java8的新特性也可以帮助提升代码的可读性(1)使用java8,可以减少冗长的代码,让代码更容易理解(2)通过Stream和方法引用,你的代码将变得更直观以下介绍三种简单的重构重构代码,用lamdba表达式重构匿名类用方法引用重构Lamdba表达式用StreamApi重构命令式的数据处理7.1.2 从匿名类到Lamdba表达式 Runnable runna原创 2020-08-09 23:46:22 · 233 阅读 · 0 评论 -
Java8实战之(六)并行数据处理与性能
6.1 并行流6.1.1 将顺序流转换成并行流6.1.2 测试流性能package com.java.lamdba.six;import java.util.function.Function;import java.util.stream.IntStream;import java.util.stream.LongStream;import java.util.stream.Stream;public class Demo { public st..原创 2020-08-04 16:34:39 · 178 阅读 · 0 评论 -
Java8实战之(五)用流收集数据
5.1 收集器简介5.1.1 收集器用作高级规约5.1.2 预定义收集器5.2 归约与汇总5.2.1 查找流中的最大值和最小值5.2.2 汇总5.2.3 连接字符串5.2.4 广义的归约汇总5.3 分组5.3.1 多级分组5.3.2 按子组收集数据5.4 分组5.4.1 分区的优势5.4.2 将数字按质数和非质数分区5.5 收集器接口5.5.1 理解Collecto...原创 2020-12-10 22:27:36 · 164 阅读 · 0 评论 -
Java8实战之(四)使用流
4 使用流4.1 筛选和切片谓词做筛选(忽略流中的数据),截短到指定长度教切片4.1.1 用谓词筛选4.1.2 筛选各异的元素4.1.3 截短流4.1.4 跳过元素4.2 映射一个非常常见的映射就是获取对象中的属性值,比如在sql中选择一列,Streamapi也提供了map和flatmap方法提供了类似的工具4.2.1 对流中每一个元素应用函数 List<Dish> dishes = Arrays.asList(new Dish("asd原创 2020-08-02 00:21:33 · 188 阅读 · 0 评论 -
Java8实战之(三)引入流
3.1 流是什么(1)代码是以声明性方式写的,说明想要完成什么,而不是说明如何实现一个操作(if条件控制语句)(2)你可以把几个基础操作连接起来,来表达复杂的数据处理流水线(在filter后加上sorted,map,collect操作,如图4-1所示),同时保持代码清晰可见。总结一下,Java8中的Stream可以让你写出这样的代码(1)声明性—更简洁,更易读(2)可复合–更灵活(3)可并行----性能更好在本章剩下的部分和下一章中,我们会使用这样一个例子:一个menu,它只是.原创 2020-07-29 17:23:36 · 118 阅读 · 0 评论 -
Java8实战之(二)Lamdba表达式
本章内容Lambda管中窥豹在哪里以及如何使用Lambda环绕执行模式函数式接口,类型推断方法引用Lambda复合Lambda管中窥豹可以把Lambda表达式理解为更简洁地表示可传递的匿名方法的一种方式,它没有名称,但是有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。下面我们来解释一下什么是匿名、函数、传递、简洁匿名不像我们写的普通方法都有个明确的名称,写得少而想得多函数我们说它是函数,是因为Lamdba函数不像方法那样属于特定的类。但是和方法一样,Lamdba有参数原创 2020-07-28 17:02:08 · 221 阅读 · 1 评论 -
java8实战之(一)通过行为参数化传递代码
在软件工程中,一个个周所周知的问题就是,不管你做什么,用户的需求肯定会变。比方说,有个应用程序是帮助农民了解自己的库存的。这位农民可能想有一个查找库存中所有绿色苹果的功能。但到了第二天,他可能会告诉你:“其实我还想找出所有重量超过150克的苹果。”又过了两天,农民又ᡪ回来补充道:“要是我可以找出所有既是绿色苹果,重量也超过150克的苹果,那就太棒了。”你要如何应对这样不断变化的需求?理想的状态下,应该把你的工作量降到最少。此外,类似的新功能实现起来还应该很简单,而且易于长期维护。行为参数化就是可以帮助你处原创 2020-07-15 18:08:29 · 615 阅读 · 0 评论