java8
Java 程序源
微信公众号: Java 程序源,敬请关注!
展开
-
01. Java8-Lambada 表达式
lambda 表达式可以算是java8 最大的新特性了, Lambda 表达式其实就是匿名内部类的简单实现方式, 去掉了匿名内部类的模板式代码, 只保留匿名内部类中抽象方法的核心代码, 使代码看起来更简洁. lambda 表达式需要函数式接口支持, 适用于策略设计模式. 此外, java8 增强了类型推断, 可以通过目标方法上下文推断参数类型. 对于同级别局部变量在匿名内部类中使用时,无须再显示声...原创 2019-08-27 16:13:24 · 11015 阅读 · 1 评论 -
15. Java8-日期API-Instant
Instant 是java8 中用于表示时间戳的类.import org.junit.Test;import java.time.Instant;/** * @Description: * @author: zongf * @date: 2018-06-30 10:01 */public class TestInstant { @Test public ...原创 2019-08-27 16:11:55 · 10802 阅读 · 0 评论 -
14. Java8-日期API-LocalDateTime
LocalDateTime 是java8 中用于表示日期与时间的类.import org.junit.Test;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoField;import java.time.temporal.ChronoUnit;...原创 2019-08-27 16:11:59 · 10840 阅读 · 0 评论 -
12. Java8-日期API-LocalDate
LocalDate 是Java8 中用于表示日期的时间类, 只表示年月日.package org.zongf.learn.java8.date;import org.junit.Test;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.*;/** * ...原创 2019-08-27 16:12:07 · 10823 阅读 · 0 评论 -
10. Java8-Optional 简介
Java8 新增了一个容器类 Optional, 用于表示一个值存在或不存在, 原来只用null 表示值不存在. Optional 的目的是避免空指针异常, 但是笔者并没有如何才能用好它1. 常用APIAPI 签名方法描述public static Optional of(T value)创建实例, 参数不能为nullpublic static Optional...原创 2019-08-27 16:12:15 · 10777 阅读 · 0 评论 -
13. Java8-日期API-LocalTime
LocalTime 时java8 中用于表示时间的类.package org.zongf.learn.java8.date;import org.junit.Test;import java.time.Duration;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.Local...原创 2019-08-27 16:12:02 · 10902 阅读 · 0 评论 -
11. Java8-日期API-简介
Java8 提供了一组新的API, 全部位于java.time.* 包下. 主要有LocalDate, LocalTime, LocalDateTime, Instant, Period, Duration,DateTimeFormatter, ZoneDate,ZoneDateTime 等类.1. Local*Java8 中的 LocalDate, LocalTime, LocalDate...原创 2019-08-27 16:12:10 · 10823 阅读 · 0 评论 -
09. Java8-流式API-并行流
Java8 中流的处理可以方便地在并行和串行之间切换, 并行流底层采用的是java7 特性fork/join 框架. 虽然并行流透明地使用了多线程, 但也并不是说是完美的, 并不能适合于所有场景. 并行流适用于单次运算时间较长的情景,而不适用于单次运算时间较短的场景. 此外并行流会占用更多的cpu 资源和内存.fork/join 拆分子任务是耗时的, 对于本身并不复杂的运算, 使用并行流效率反...原创 2019-08-27 16:12:19 · 10874 阅读 · 0 评论 -
08. Java8-流式API-终端操作collect
集合的stream()方法是将集合转换为流形式以处理数据, Stream的collect 是将流转换为集合或其它形式存储流运算结果. Collector 接口中方法的实现决定了如何对流执行收集操作,但并非一定要自己去实现此接口, Collectors 实现类提供了很多静态方法, 可以便捷地创建收集器实例.1. 常用收集器测试数据如下:static List<Employee>...原创 2019-08-27 16:12:23 · 10841 阅读 · 0 评论 -
07. Java8-流式API-终端操作
流的终止操作用于触发流进行流水线处理, 产生流水线处理的结果.结果类型可为任意类型.1. 常用API终端API 会触发流进行流水线运算, 常用的终端API 如下:API 签名描述boolean allMatch(Predicate<? super T> predicate)短路式检查所有元素是否都符合条件, 遇到一个不符合的则结束boolean a...原创 2019-08-27 16:12:27 · 10757 阅读 · 0 评论 -
06. Java8-流式API-中间操作
流式三部曲-创建流流可分为有限流和无限流两种, 有限流是指流中元素个数有限, 无限流指流中元素个数无限. 无论是有限流和无限流, 在进行终端操作之前都不会进行中间操作处理.1. 有限流创建1.1 通过集合创建流通过list/set 自带的stream(), parallelStream() API可很方法的创建流.// 创建有限流1: 通过集合(list,set) 获取流, Ma...原创 2019-08-27 16:12:32 · 10832 阅读 · 1 评论 -
05. Java8-流式API-创建流
流可分为有限流和无限流两种, 有限流是指流中元素个数有限, 无限流指流中元素个数无限. 无论是有限流和无限流, 在进行终端操作之前都不会进行中间操作处理.1. 有限流创建1.1 通过集合创建流通过list/set 自带的stream(), parallelStream() API可很方法的创建流.// 创建有限流1: 通过集合(list,set) 获取流, Map 不能获取流@Tes...原创 2019-08-27 16:13:08 · 10722 阅读 · 0 评论 -
04. Java8-流式API-简介
如果说Java8 中最大的两个改变, 一个是Lambda 表达式, 另外一个就是Stream API(流式 API). Stream API 允许声明式地操作集合, 可以执行复杂的过滤, 查找, 映射, 分组, 聚合等操作,而且对流操作时, 可以透明地使用并行处理, 而无须新写多线程代码. 简而言之, Stream APi 提供了一种新型高效且易于使用的数据处理方式.1. Stream流是数...原创 2019-08-27 16:13:11 · 10894 阅读 · 0 评论 -
03. Java8-方法引用
方法引用是Lambda 表达式的另一种简写方式. 普通的Lambda 表达式的lambda体其实就是一段匿名类的核心代码实现, 每次创建Lambda 表达式时都需要重新写一次方法的实现, 对于代码重用而言并不乐观. 而方法引用则时, 用已存在的函数的引用来创建lambda表达式, 只需要在一处编写方法实现体, 其它地方直接引用即可.1. 方法引用格式方法引用的前提是, 被引用的方法和函数式接...原创 2019-08-27 16:13:15 · 10727 阅读 · 0 评论 -
02. Java8-四大核心函数式接口
只包含一个抽象方法的接口,称为函数式接口. 函数式接口可以通过@FunctionalInterface 注解, 这样编译时会做检查, 同时使用javadoc 生成文档时,也会说明这是一个函数式接口. 通常我们并不需要创建函数式接口, Java8 提供了内置的四大核心函数式接口和一些常用的函数式接口. java8 的函数式接口都在 rt.jar:java.util.function.* 包中.1....原创 2019-08-27 16:13:19 · 10946 阅读 · 3 评论 -
16. Java8-日期API-ZonedDateTime
ZonedDateTime 是java8 中包含时区的时间类.import org.junit.Test;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZonedDateTime;/** * @Description: 除了包含时区信息之外, 和LocalDateTime API...原创 2019-08-27 16:11:44 · 11114 阅读 · 0 评论