Lambda表达式
Lambda表达式又称闭包,它允许把函数作为方法的参数传入方法中。
语法如下:
(参数)-> 表达式 或者 (参数)->{表达式;}
方法引用
方法引用也是一个lambda表达式,比如(a, b)-> Person.compareAge(a, b)可以写成Person::compareAge,
如果lambda表达式仅仅是调用一个已存在的方法,那可以改写为方法引用。
函数式接口
函数式接口有且仅有一个抽象方法,但可以有多个非抽象方法。
默认方法
接口可以声明默认方法,在方法名前加个default即可,实现类不需要实现默认方法。
接口同样可以声明静态方法
public interface Vehicle {
default void print(){
System.out.println("我是一辆车!");
}
// 静态方法
static void blowHorn(){
System.out.println("按喇叭!!!");
}
}
Stream
Stream 提供了流式方式操作集合的能力
List<Integer> transactionsIds =
widgets.stream()
.filter(b -> b.getColor() == RED)
.sorted((x,y) -> x.getWeight() - y.getWeight())
.mapToInt(Widget::getWeight)
.sum();
Optional
Optional是对值的封装,为了解决空指针问题
Nashorn
Nashorm是一个JavaScript引擎
日期时间API
java.time.*
网友评论