Java 8新特性
Lambda表达式
本质:函数式接口的实例
->: lambda操作符
->左边:lambda形参列表(接口抽象方法的参数列表)
->右边:lambda体 (重写的抽象方法的方法体)
函数式接口
只有一个抽象方法的接口,根据功能分为四类型
- 消费型
- 供给型
- 函数型
- 断定型
Stream API
使用StreamAPI对集合数据进行操作(类似sql对数据库的查询)
执行流程
- Stream实例化
- 中间操作 :过滤filter、distinct,切片limit、skip,排序sorted,替换map/flatMap
- 终止操作 (延迟机制,终止才执行中间操作):遍历、收集转换、匹配查找、归约reduce
Option 类
为了在程序中避免空指针的问题
常用方法ofNUllAble、orElse
为对象提供个容器,如果对象为空值,提供替换操作
Employee e=null;
//Optional<Employee> e1 = Optional.of(e);
Optional<Employee> e1 = Optional.ofNullable(e);
//如果为空,替换
Employee employee = e1.orElse(new Employee());
System.out.println(employee);