函数接口:
一个接口只有一个显性声明的抽象方法,可以用@Functionallnterface标注
lambda表达式:
(x,y)-> {return x+y;}
参数列表 箭头 表达式(语句块)
表达式类型是:函数接口
引用变量:默认final,不可变
eg. Object o = (Runnable) () -> { System.out.println("hi"); };
必须定义类型
集合类批处理: Stream
懒(lazy):map filter distinct ....
急(eager): forEach toArray reduce collect
默认方法:Default method
可以定义在接口中的实现方法 用default实现 还有静态方法
作用:改接口的时候不用修改每个实现类,同时实现类可以指定继承哪个接口的实现(或者提供自己实现)
Optional类:
是一个可以为null的容器对象