1 Lambda 表达式
Lambda 允许使用函数作为一种方法的参数。
2 方法引用
方法引用允许直接引用已经存在 Java 类或对象的方法或结构方法。
我们将在上例中 System.out::println 该方法被引用为静态方法。
3 函数式接口
只有一个抽象接口称为函数接口,可以隐式转换为函数接口 Lambda 表达式通常是函数接口。
上会添加@FunctionalInterface 注解。
4 接口允许定义默认和静态方法
从 JDK8 一开始,允许界面中有一个或多个默认的非抽象方法和静态方法。
5 Stream API
新添加的 Stream API(java.util.stream)引入真正的函数编程风格 Java 中间。这种风格要处理的元素集
它被视为一种流,流在管道中传输,并且可以在管道的节点上进行处理,如筛选、排序、聚合等。
6 日期/时间类改进
之前的 JDK 日期处理非常不方便,我们经常使用第三方工具包,比如 commons-lang
包等。不过 JDK8 这种变化出现后,如日期时间的创建、比较、调整、格式化、时间间隔等。
这些类都在 java.time 包下,LocalDate/LocalTime/LocalDateTime。
7 Optional类
Optional 类是可以做到的 null 容器对象。如果值存在,则值存在 isPresent()方法会返回 true,调用 get()方法将返回对象。
8 Java8 Base64 实现
Java 8 内置了 Base64 编码器和解码器。