1、Lambda 表达式 (把代码当作参数)
//定义了操作接口
public interface GreetingService {
void sayMessage(String message);
}
//声明接口的具体操作
GreetingService greetService1 = message -> System.out.println("Hello " + message);
//调用接口,使用功能
greetService1.sayMessage("java");
1、不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。
2、可以直接在 lambda 表达式中访问外层的局部变量
3、在 Lambda 表达式当中不允许声明一个与局部变量同名的参数或者局部变量。
2、方法的引用 直接引用已有Java类或对象(实例)的方法或构造器
java.util.function.Supplier(用来创建对象的,但是不同于传统的创建对象语法:new)
3、默认方法 ? 默认方法就是一个在接口里面有了一个实现的方法。
4、新工具 ? 新的编译工具
5、Stream API ?新添加的Stream API(java.util.stream)
Stream(流)是一个来自数据源的元素队列并支持聚合操作
数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。
聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。
parallelStream()//并行流
stream()//串行流
6、Date Time API ? 加强对日期与时间的处理。
LocalDateTime
ZonedDateTime
7、Optional 类,用来解决空指针异常。
Optional 类是一个可以为null的容器对象
原文地址:https://www.cnblogs.com/aiqixiansheng/p/10422608.html