CompletableFuture用法介绍
摘要:一、CompletableFuture用法入门介绍 入门介绍的一个例子: 1 package com.cy.java8; 2 3 import java.util.Random; 4 import java.util.concurrent.CompletableFuture; 5 6 public
阅读全文
posted @
2019-09-30 22:10
有点懒惰的大青年
阅读(1321)
推荐(0) 编辑
CompletableFuture引入
摘要:一、Future介绍 Future以前我们如果有个方法action执行,比如去数据库中查询数据、上传一个文件等,这个方法执行10分钟,调用者就需要等10分钟。基于此,调用者可以先执行action,返回一个票据future,然后可以继续做其他的事情,这样就不阻塞了,完全异步化。然后可以根据future
阅读全文
posted @
2019-09-29 22:10
有点懒惰的大青年
阅读(415)
推荐(0) 编辑
double类型数相除保留两位小数
摘要:参考文章: https://www.cnblogs.com/wangpei/p/4756055.html https://blog.csdn.net/dongapple/article/details/76974624 一、需要使用BigDecimal来实现 二、DecimalFormat 参考文章
阅读全文
posted @
2019-09-29 09:45
有点懒惰的大青年
阅读(11126)
推荐(0) 编辑
Interface default method介绍
摘要:一、introduce interface default method Introduce default methodWrite the default method at interfaceThe multiply conflict resolve interface default meth
阅读全文
posted @
2019-09-28 14:13
有点懒惰的大青年
阅读(644)
推荐(0) 编辑
Spliterator介绍
摘要:一、Spliterator Spliterator<T> trySplit();trySplit接口就相当于我们之前写的AccumulatorRecursiveTask类里面的分割任务,如果满足条件就继续往下分,返回一个新的spliterator出来。Spliterator就相当于我们写的fork
阅读全文
posted @
2019-09-28 11:02
有点懒惰的大青年
阅读(768)
推荐(0) 编辑
ForkJoin使用
摘要:一、Fork Join 分而治之的办法 JDk为Fork/Join框架提供了很好的支持,我们想要用这个算法首先得创建一个Fork/Join任务,在JDK中这个任务就叫做:ForJoinTask,只要继承这个类就可以创建一个任务类,但是实际使用中并不是直接继承ForkJoinTask类,而是继承它的子
阅读全文
posted @
2019-09-27 23:04
有点懒惰的大青年
阅读(897)
推荐(0) 编辑
MutablePropertyValues的简单用法
摘要:代码例子: 1 package com.cy.model; 2 3 import lombok.Getter; 4 import lombok.Setter; 5 import lombok.ToString; 6 7 @Getter 8 @Setter 9 @ToString 10 public
阅读全文
posted @
2019-09-24 20:35
有点懒惰的大青年
阅读(1899)
推荐(0) 编辑
Stream的并行计算
摘要:一、Stream并行计算体验,利用多核加快计算速度 stream的并发,多个cpu执行同一个任务,提高效率; 需求:从1+...+10000000,看下各种计算方法的运行时间是多少 代码例子如下: console: 结论:不一定是所有的方法产生的Stream都适合于并行的方式去做的,一定要注意有些方
阅读全文
posted @
2019-09-22 21:02
有点懒惰的大青年
阅读(1003)
推荐(0) 编辑
Collector解读以及自定义
摘要:一、Collector接口解读: Collector接口解读: Collector<T, A, R>T: stream中的元素类型;A:累加器的类型,可以想象成一个容器。比如T要累加,转化为List<T>,A就是List类型。R:最终返回值类型T is the generic type of the
阅读全文
posted @
2019-09-22 11:23
有点懒惰的大青年
阅读(1146)
推荐(0) 编辑
Collector的使用
摘要:一、Collector的引入 1)Collector的聚合作用前面已经使用过,将list.stream后的一系列操作之后再返回list。 2)Collector的引入,通过需求:将绿色的Apple放在一个list,黄色的Apple放在一个list 代码例子: 打印结果: 二、Collectors的A
阅读全文
posted @
2019-09-16 23:19
有点懒惰的大青年
阅读(471)
推荐(0) 编辑
Optional的使用
摘要:一、空指针问题与Optional的引入 需求:根据人获取他买的车保险名字。 Person: 1 package com.cy.java8; 2 3 import lombok.Data; 4 5 @Data 6 public class Person { 7 8 private Car car; 9
阅读全文
posted @
2019-09-15 13:06
有点懒惰的大青年
阅读(609)
推荐(0) 编辑
NumericStream && Stream综合练习
摘要:一、NumericStream 我们可以将一个Stream转化为对应的数字Stream,如mapToInt、mapToLong转化为IntStream、LongStream等(NumericStream又可以通过boxed、mapToObj方法转化回去),这样做的好处是可以节省比较多的内存开销,数据
阅读全文
posted @
2019-09-14 09:42
有点懒惰的大青年
阅读(281)
推荐(0) 编辑
Stream之filter、distinct、skip、map、flatMap、match、find、reduce
摘要:一、Stream之filter、distinct、skip: 打印结果: 二、Stream之map、flatMap: 打印结果: 三、stream之match、find、reduce: match:anyMatch、noneMatch、allMatch find: 打印: reduce: 打印:
阅读全文
posted @
2019-09-13 21:31
有点懒惰的大青年
阅读(1394)
推荐(0) 编辑
创建Stream
摘要:1.创建Stream create Stream from Collections; create Stream from values; create Stream from Arrays; craeate Stream from files; craeate Stream from functi
阅读全文
posted @
2019-09-10 22:21
有点懒惰的大青年
阅读(489)
推荐(0) 编辑
Stream介绍
摘要:一、Stream介绍 现在有这样的需求:有个菜单list,菜单里面非常多的食物列表,只选取小于400卡路里的并且按照卡路里排序,然后只想知道对应的食物名字。 代码: package com.cy.java8; public class Dish { private final String name
阅读全文
posted @
2019-09-08 18:33
有点懒惰的大青年
阅读(585)
推荐(0) 编辑
lambda表达式使用解析
摘要:1、Predicate/Consumer/Function/Supplier介绍 以Predicate为例,引申出很多类似的Predicate,如IntPredicate、DoublePredicate、BiPredicate、LongPredicate。但是他们的用法都是差不多的。比较类似。 2、
阅读全文
posted @
2019-09-08 15:39
有点懒惰的大青年
阅读(474)
推荐(0) 编辑
lambda表达式
摘要:一、简单介绍lambda表达式 lambda接口满足的条件:接口有且只有一个方法,default方法、static方法除外,@FunctionalInterface会告诉编译器编译的时候判断方法到底是不是一个function的接口,标注了@FunctionalInterface的接口,如果下面方法不
阅读全文
posted @
2019-09-08 12:42
有点懒惰的大青年
阅读(369)
推荐(0) 编辑