函数式接口:
1.接口中有且只能有一个抽象方法
2.可以有多个默认方法和静态方法,私有方法
@FunctionalInterface注解
常用的函数是接口:
Supplier : T get();
Consumer: void accept(T t);
Predicate: boolean test(T t)
default Predicate and(Predicate<? super T> other)
default Predicate or(Predicate<? super T> other)
default Predicate negate() //取非
static Predicate isEqual(Object targetRef)
static Predicate not(Predicate<? super T> target)
Function<T,R> R apply(T t)
lambda表达式,链式变成,延迟触发(减少os资源的浪费)