Java笔记--Lambda表达式
lambda表达式是从JDK8开始出现的一种新语法形式,可以简化匿名内部类的代码写法。

我们来实际感受一下lambda表达式是如何简化我们的匿名内部类的。

这一串是我们的匿名内部类。
接下来我们使用lambda表达式来对内部匿名类做简化:
():匿名内部类被重写方法的形参。
我们这里的形参是空的,所以不写。
{ }:被重写方法的方法体代码。
System.out.println("匿名内部内,重写后的show方法...");

可以看到,代码被简化了不少。
注意:lambda表达式只允许操作 函数式编程接口。
说人话就是:有,且只有一个抽象方法的接口。
lambda表达式的省略写法:
1、参数类型可以省略不写
2、如果只有一个参数,参数类型可以省略,同时()也可以省略
3、如果lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号,此时,如果这行代码是return语句,必须省略return语句不写,同时也必须省略";"不写。
lambda表达式和匿名内部类的区别:
1、使用限制不同
匿名内部类:可以操作类(普通类、抽象类),也可以操作接口(抽象接口,函数式接口)。
lamdba表达式只能操作函数式接口。
2、实现原理不同:
匿名内部类:编译之后,产生一个单独的.class字节码文件。
lambda表达式:编译之后,没有单独的字节码文件。

