Java8新特性Lambda表达式
2020-07-02 本文已影响0人
Mr_Fly
Lambda 表达式(让你的代码更简洁,效率更快(具有延时执行特性))
->左侧:表达式的参数列表。接口中抽象方法的的形参
->右侧:表达式中所需执行的功能。接口中抽象方法的实现
函数接口
@FunctionalInterface
image.png image.pngjava8内置的四大核心函数式接口
*Consumer:消费型接口
*Supplier:供给型接口
*Function:函数型接口
*Predicate:断言型接口
image.png image.png image.png image.png
Stream
image.png image.pngStream 分为中间流,和收集流
list 常用(stram/ p stram)
filter
limit
skip
concat
map
sort
collector
forearch
groupby
image.png
image.png image.png image.png
方法引用符
双冒号::为引用运算符,而它所在得表达式被称为方法引用,如果lambda要表达得函数方案已经存在于莫个方法得实现中,那么则可以通过双冒号来引用该方法作为lambda得替代者
image.png image.png通过类名引用静态成员方法
类已经存在,静态成员方法也已经存在,就可以通过类名直接引用静态成员方法
数组得构造器引用
image.png
接口特性(注意:接口不能有构造方法,静态代码块,可以接口可以多继承)
java8特性,可以定义抽象方法,默认方法,静态方法,成员变量,常量(一旦赋值,不可修改,必须赋值)
默认方法 :
default 返回值类型 方法名称(参数列表){方法体} 注意:可以被覆盖重写
静态方法 :
static 返回值类型 方法名称(参数列表){方法体} 注意:只能通过接口名称调用,不能通过实现类调用
java9特性: 接口中允许定义私有方法
返回值类型 方法名称(参数列表){方法体}
java9特性 静态私有方法,解决多个静态方法之间重复代码问题
private static 返回值类型 方法名称(参数列表){方法体}
注意:如果多个父接口当中的抽象方法如果重复,,那么子接口必须进行默认方法的覆盖重写(而且呆着default关键字)