不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

目录:

动态代理:

代理模式:

静态代理举例:

动态代理举例(P664):

动态代理和AOP

java8新特性

Lambda

小案例:

语法:

函数式接口:

小案例:

方法引用和构造器引用(: :)

方法引用情况1:

方法引用情况2:

方法引用情况3:

构造器引用(举例居多):

数组引用:

Stream API:

Stream中间操作

筛选和切片:

映射:

排序

终止操作

匹配和查找

归约:

收集:

Optional类

小案例:


动态代理:

代理模式:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

静态代理举例:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

动态代理举例(P664):

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

动态代理和AOP

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

java8新特性

Lambda

 

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

小案例:

只能用于接口,并且这个接口只有一个抽象方法

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

语法:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

java中Lambda表达式的本质:作为接口的一个实例

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

函数式接口:

如果一个接口中,只有一个抽象方法,这个就是一个函数式接口:

这个注解就是声明这是一个函数式接口

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

在java.util.function包下定义了java8的丰富的函数式接口

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

消费型:有入无出

供给型:有出无入

函数型:输入一个输出一个,输出类型可以不一样

断定型:就是判断

小案例:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

 

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

方法引用和构造器引用(: :)

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

接口本身需要有一个方法的实现,然后在实现这个方法的过程中,饿哦们使用了另一个方法来实现,并且这两个方法(要实现的方法,实现方法中调用的另一个方法)的参数相同,就可以使用方法引用,如下小栗子:

方法引用情况1:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

小案例2:

我们可以明确在Supplier中只有一个get方法需要实现,且这个方法是一个空参方法,然后为了实现这个get方法,我们需要使用getName方法来实现get方法,且这个getName方法本身也是空参的,所以我觉得这个语法就是指明使用的对象::这个对象方法

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

方法引用情况2:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

方法引用情况3:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

构造器引用(举例居多):

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

数组引用:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

Stream API:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

顺序流就是按照顺序进入,并行流就不一定了

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

Stream中间操作

筛选和切片:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

这个就有点像数据库操作,注意这些都是中间操作,还需要最后的操作

映射:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

首先理解一下这个,使用add加上list2之后,整个数组有4个元素,

使用addAll之后就会有6个元素

flatMap就和addAll的效果类似,就是把字符串中的集合转换成Stream中的实例

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

排序

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

终止操作

匹配和查找

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

归约:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

收集:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

Optional类

为了在程序中避免空指针异常而创建的。

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)

这个get操作需要确定我们所得到的一定是一个非空数值。

小案例:

 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional) 不是太细的java自学笔记进阶篇9(P662-690)( 完 )(代理模式,lambda,方法引用,Stream,optional)