JDK8新特性

1.Lambda表达式:函数作为参数传递进方法中
语法:(parameters)-> expretion
     (parameters)->{statements}
MathOperation addOperation = (int a,int b) -> a + b;
System.out.println("10+5="+operate(10,5,addOperation));

2.方法引用(method reference):通过方法的名字来指向一个方法
语法:
静态方法引用:Class::static_method
任意对象引用:Class::method
特定对象引用:instance::method
List list = new ArrayList();

list.forEach(a -> System.out.println(a));
等同于
list.forEach(System.out::println);    

3.函数式接口(Functional Interface):有且仅有一个抽象方法,但可以有多个非抽象方法的接口
例如:java.lang.Runnable、java.util.function

Predicate<Integer> predicate = n -> true

4.接口默认方法:接口可以有默认方法,不需要实现类去实现方法
语法:在方法前加上default关键字

5.Stream    将元素集合抽象成流,以一种声明的方式处理数据
语法:
创建串行流:stream()
创建并行流:parallelStream()

6.Optional    可以为null的容器对象,解决空指针异常
语法:Optional<Integer> optional = Optional.ofNullable(value);

7.Nashorn JavaScript

8.新的日期时间API

9.内置Base64编码器和解码器

上一篇:封装axios


下一篇:jdk8及以上版本GC配置