1. 函数式接口
函数式接口可以包含多个默认方法、类方法,但是只能有一个抽象方法。
Lambda表达式的目标类型是函数式接口。
java.util.function包下,定义了大量的函数式接口
2. 方法引用和构造器引用
如果Lambda表达式的代码块只有一条语句,程序就可以省略Lambda表达式中代码块的花括号;而且,还可以在代码块中使用方法引用和构造器引用。
3. Lambda表达式与匿名类
- 相同点
- 在代码块中,可以直接访问“effective final”局部变量,以及外部类的类变量和实例变量
- 他们创建的对象,都可以访问继承的默认方法。
- 区别
- Lambda只能为函数式接口创建实例
- Lambda代码块中,不允许调用接口定义的默认方法
4. 使用Lambda表达式调用Arrays的类方法
Arrays类的有些方法需要Comparator、XxxOperator、XxxFunction等接口实例,这些接口都是函数式接口。