1 、 不再使用java util Date
这是一个可变的对象。破坏了对象的不可变性。应该使用 LocalDate
2、函数式编程
自学
3、参数类型自动推断,代码简洁
4、更容易的并行
lambda表达式可以使用在任何有函数式接口的地方
只有一个抽象方法的接口是函数式接口
Public interface UserMapper{
Int insert();
} √是函数式接口
Public interface UserMapper{
default Int insert();
} 默认方法 不是
Public interface UserMapper{
static Int insert();
} 静态方法不是
Public interface UserMapper{
Public Int hashCode();
} Object对象中的方法也不是函数式接口
@FunctionInterface 这个注解帮助我们标注函数式接口
Java.util.function 包中几乎全部都是函数式接口
学习lambda 最重要的两点 1范型, 2函数式接口
lambda表达式是对象,是一个函数式接口的实例
左边是参数 ,右边是体
其中第五个 ,没有返回值也可以那么写
参数是0个或者多个不能省略参数的小括号
- 要么全部省略参数类型,要么都不省略
- lambda的参数不能使用 final修饰
- 不能把lambda赋给非函数式接口
- 如果非要把lamdba赋值给非函数式接口,需要把lambda强转成函数式接口
- 不需要也不允许使用throws语句来声明它可能会抛出的异常。
一看参数,二看返回值。
2.方法的引用