java8增添了很多新功能,最近又有许多小伙伴面试问考不考java8,肯定要考的,其中的Lambda表达式作为重中之重,为什么呢?因为lambda表达式贯穿了后面的函数式接口,方法引用和类的引用,Stream API。
一.Lambda表达式
lambda表达式可以被理解成一段可以传递的代码,可以写出更简洁、更灵活的代码,
1.简单的匿名类与lambda表达式转换:
2.语法:“->"被称作箭头,lambda表达式包含->左右两部分,左边用来指定所需要的参数,右边用来指定lambda体(即lambda表达式要执行的功能)。
二.函数式接口
java里面,Marker类型的接口是一种没有方法或者属性声明的接口,简单的说,marker接口是空接口。相似地,函数式接口只包含一个抽象方法声明的接口。有了lambda表达式,我们可以使用匿名内部类实例化函数式接口的对象,从而得到简化。
@FunctionnalInterface注解是java8的新加入的接口,对于注解不是很有效的函数式接口,可以使用该注解解决编译层面的错误。