摘要: 阅读全文
posted @ 2019-11-10 22:44 wf.zhang 阅读(283) 评论(0) 推荐(1) 编辑
摘要: 原来的时间类 1.默认值 我们使用起来不方便 2.在不同包 不规范 在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义 3.可变 线程不安全 4.时区处理麻烦 java8新的时间 1.都在 java.time 包下 很有规律 2.用final 阅读全文
posted @ 2019-11-10 22:26 wf.zhang 阅读(357) 评论(0) 推荐(1) 编辑
摘要: java8增加默认方法 静态方法 重复注解 类型注解 1.默认方法 default修饰 为什么要有这个特性? 当修改接口时候,需要修改全部实现该接口的类。为了解决这个问题,所以引进默认方法。 默认方法能让我们给接口增加新的方法,并且能保证对使用这个接口的代码版本的兼容性。 总结:默认方法就是接口可以 阅读全文
posted @ 2019-11-10 20:01 wf.zhang 阅读(490) 评论(0) 推荐(0) 编辑
摘要: Optional类 java.util.Optional 是一个容器类 避免空指针 NPE 能够快速定位空指针 常用方法: Optional.of(T t) : 创建一个 Optional 实例 Optional.empty() : 创建一个空的 Optional 实例 Optional.ofNul 阅读全文
posted @ 2019-11-10 19:15 wf.zhang 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 并行流 多线程 把一个内容分成多个数据块 不同线程分别处理每个数据块的流 串行流 单线程 一个线程处理所有数据 java8 对并行流优化 StreamAPI 通过parallel() 并行流 sequential() 顺序流 注意: 使用并行流并不是一定会提高效率,因为jvm对数据进行切片和切换线程 阅读全文
posted @ 2019-11-10 12:41 wf.zhang 阅读(1476) 评论(0) 推荐(1) 编辑
摘要: Stream的终止操作 * allMatch 是否匹配所有 * anyMatch 是否匹配一个 * noneMatch 是否没有匹配一个 * findFirst 返回第一个 * count 返回总数 * max 返回最大 * min 返回最小 * reduce 归约 将元素连续操作得到结果 * co 阅读全文
posted @ 2019-11-10 11:32 wf.zhang 阅读(2278) 评论(0) 推荐(1) 编辑
摘要: Stream 的中间操作 filter 过滤 排除元素 filter(T -> boolean) 保留 boolean 为 true 的元素 limit 截断 取得多少个结果 limit(long n) 返回前 n 个元素 skip 跳过几个结果 数量不足 返回空 skip(long n) 去除前 阅读全文
posted @ 2019-11-10 10:30 wf.zhang 阅读(1317) 评论(0) 推荐(0) 编辑
摘要: 为什么用stream 应用函数式编程 配合Lamdba表达式 更快操作集合类 数组 什么是 stream 总结: Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍 阅读全文
posted @ 2019-11-09 16:15 wf.zhang 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 一:方法引用 如果Lambda体中的内容 已经有方法实现了 我们可以使用"方法引用" (可以理解为方法引用是 lambda 表达式的另一种表现形式) 1.对象 :: 实例方法名 2.类::静态方法名 3.类::实例方法名 使用条件: a. lambda 表达式 实现函数式接口中的方法 参数列表(参数 阅读全文
posted @ 2019-11-09 13:54 wf.zhang 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 在使用lamdba表达式需要函数式接口的支持 java8已经提供了很多函数式接口 在java.util.function包下 核心四大函数式接口 其他函数式接口 Consumer<T> 消费型接口 void accept<T t> 一个参数 没有返回值 源码 如何使用 结果 Supplier<T> 阅读全文
posted @ 2019-11-09 11:00 wf.zhang 阅读(218) 评论(0) 推荐(1) 编辑