为什么要学习java8新特性
Lambda表达式和Stream API,将函数式编程引入java,作用:
1.代码简洁,函数式编程写出的代码简洁且意图明确,比如使用stream接口取代for循环
2.多核友好,java函数式编程使得编写的并行程序变得简单,只需调用parallel()方法即可
什么是Lambda表达式
()->System.out.println("使用Lambda表达式开启线程");
改造成Lambda表达式需要满足什么条件
1.可选类型声明:不需要声明参数类型,编译器可以统一识别参数值
2.可选参数圆括号():一个参数无需定义的圆括号,但多个参数需要定义圆括号()
3.可选的大括号{}:如果主题包含了一个语句,就不需要使用{}
4.可选的返回值关键字return:如果主体只有一个表达式返回值则可以省略return和{}
什么是函数式接口
定义:只要确保接口中有且仅有一个抽象方法即可
格式:修饰符 interface 接口名称 {
[public abstract] 返回值类型 方法名称(可选参数信息);
// ٌ其他
}
常见的函数式接口有哪些,分别有哪些作用
函数式接口 | 参数类型 | 返回值类型 | 说明 |
---|---|---|---|
Consumer 消费型接口 | T | void | 对类型为T的对象操作,方法: void accept |
Supplier 供给型接口 | 无 | T | 返回值类型为T的对象,方法:T get():可用作工厂 |
Function |
t | R | 对类型为T的对象操作,并返回结果是R类型的对象,方法:R apply(T t); |
Predicate 断言型接口 | T | boolean | 判断类型是T的对象是否满足条件,并返回boolean值,方法boolean test(T t); |