Java8新特性 — 学习小结
2020-11-11 22:09:36 1 举报
AI智能生成
Java8新特性 — 学习小结
作者其他创作
大纲/内容
题外
断言
assert
策略模式
定义接口的方式进行处理
函数式编程
you just tell "how" not "do what".
Lambda
优势
减少编码量
节省内存空间
接口
标识
@FunctionalInterface
有且仅有一个抽象方法
可以包含default方法及实现
default method
Default方法解决多重继承冲突的三大原则
Class优先级最高
其次,子接口优先级高
若继承了不同接口,并想实现他们的相同方法,那么只能对该方法进行重写
可以包含static方法及实现
static method
举例
Runnable
Comparator
Callable
语法
lambda表达式实现匿名函数
(parameters) -> expression
(parameters) -> {statments;}
使用
Function interface
Predicate boolean test(T t);
比较判断
Consumer accept(T t);
只进不出
Function<T,R> R apply(T t);
有进有出
Supplier<T> T get();
获得对象
方法
推导
语法
类型::方法
方式
通过类中的静态方法进行推导
通过类的实例方法进行推导
通过对象的实例方法进行推导
通过构造函数进行推导
Stream
核心
ForkJoin
JDK1.7有的特性
创建
collection
list.stream()
特性:元素顺序不变
values
Stream
.of()
.iterate()
.generate()
Arrays
.stream()
Files
.lines()
方法
继续产生新的Stream(Intermediate)
sorted
filter
limit
distinct
skip
跳过几个元素
map
获取指定属性元素
flatMap
扁平化
mapToInt
Integer转int,进行拆箱操作,以减少内存占用空间
rangeClosed
累加器
...
中断Stream(Terminal)
collect
forEach
match
判断所有元素是否符合给定条件,返回Boolean类型
find
返回Optional类型
reduce
聚合
默认不赋初始值,则返回Optional类型
max
min
count
sum
...
Optional
创建
通过静态方法进行Optional创建
.empty()
.of()
.ofNullable()
对以上两种方式的综合
方法
get
获取值
orElse
默认值
orElseGet
orElseThrow
filter
map
flatMap
ifPresent
如果存在,则输出
isPresent
判断是否存在,返回Boolean类型
Collector
方法
聚合(reduce)
toList
toSet
averagingDouble、averagingInt、averagingLong
collectingAndThen
counting
joining
maxBy
minBy
reducing
summarizingDouble、summarizingInt、summarizingLong
summingDouble、summingInt、summingLong
toCollection
toConcurrentMap
toMap
分组
groupingBy
groupingByConcurrent
partitioningBy
特征
并行处理
CONCURRENT
排序
UNORDERED
身份认证
IDENTITY_FINISH
并行编程
限制
基础
Fork(拆分)
Join(聚合)
Stream
基于 Spliterator 对程序进行并行化处理
线程
jdk1.5
Future设计模式
程序的调用不会进入block状态,但是在获取结果时照样会陷入阻塞状态
jdk1.8
CompletableFuture
增加异步回调的功能
API
supplyAsync
通过 supplyAsync 异步的方式创建 CompletableFuture
thenApply
获取到值之后,再次对获取值进行处理
whenComplete
完成后的操作
handle
获取到值之后,再次对获取值进行处理
thenRun
完成操作后,再执行一些操作
thenAccept
获取到值之后,对获取值进行消费
thenCompose
CompletableFuture 组合操作
thenCombine
CompletableFuture 累计操作
thenAccpetBoth
CompletableFuture 累计操作
runAfterBoth
在两个 CompletableFuture 操作完成后,再执行
applyToEither
在两个 CompletableFuture 操作中,其中有一个操作完成,就执行
acceptEither
在两个 CompletableFuture 操作中,其中有一个操作完成,就执行
runAfterEither
在两个 CompletableFuture 操作中,其中有一个操作完成,就执行
anyOf
只要有一个任务执行完成,就执行
allOf
在所有任务执行完成后,再执行
Date
类
LocalDate
LocalTime
LocalDateTime
Instant
时间点
Duration
时间段
Period
周期
方法
formater
parse
收藏
收藏
0 条评论
下一页