1、lambda表达式
2、函数式接口
3、StreamAPI
4、方法的引用与构造器的引用
5、接口中的默认方法与静态方法
6、新时间日期API
7、其他新特性
简介
java8的新特性
1、速度更快(内存结构、垃圾回收、并行拓展)
2、代码更少(新增新的语法lambda表达式)
3、强大的streamApI
4、便于并行
5、最大化减少空指针异常,optional
lambda表达式
首先:lambda表达式是一个匿名函数,我们可以把lambda表达式理解为一段可以传递的代码(将代码像数据一样传递)
例:Comparable<Integer> com=(x,y)->Integer.compare(x,y);
emplayees.stream().filter(e->e.getSalary()>=5000).foreach(System.out::println).limit(2);
lambda表达式的基础语法,java8引入了一个新的操作->箭头操作符将lambda表达式分为俩部分
左侧:lamdba表达式参数列表
右侧:lambda表达式所需执行的功能即lambda表达体
语法格式1、无参数、无返回值。
()->功能,lambda体
语法格式2、有一个参数、无返回值
(x)->功能,lambda体
语法格式3、有一个参数没有返回值,括号可以不写
x->功能lambda体
语法格式4、有俩个以上的参数、并且lambda有多条语句,有返回值
(x.y)->{lambda体}
语法格式5、若只有一条语句、return和{}可不写
(x,y)->lambda体
语法格式6:lambda表达式的参数的数据类型可以省略不写,因为jvm编译器通过上下文推断出数据类型,即类型推断
(Integer x,Integer y)->lambda体
lambda表达式需要函数式接口的支持
函数式接口:接口中只有一个抽象方法,可以使用注解@FunctionInterface修饰,可以检查是否是函数式接口。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/13076.html