https://cdn.nlark.com/yuque/0/2021/png/576791/1631306780687-88d9b3fc-a948-4959-b5d0-4ca20b6342c5.png

1. 接口的默认方法

https://cdn.nlark.com/yuque/0/2021/png/576791/1631306901549-923d8946-e718-4e23-871a-efdc99228e2e.png

非抽象方法实现

2. Lambda 表达式

https://cdn.nlark.com/yuque/0/2021/png/576791/1631307126556-1d626772-a907-46df-9e4c-0c8355a43425.png

Lambda 表达式来简化匿名内部类

Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。

https://cdn.nlark.com/yuque/0/2021/png/576791/1631307137717-4091ab46-306e-413f-b674-ab5c63c26861.png

3. 函数式接口

https://cdn.nlark.com/yuque/0/2021/png/576791/1631307255432-80c84140-cd92-487d-87e5-70369c9052da.png

简单来说就是只定义了一个抽象方法的接口(Object类的public方法除外),就是函数式接口,并且还要提供注解@FunctionalInterface。JDK 提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。

https://cdn.nlark.com/yuque/0/2021/png/576791/1631307267011-e7a49ef3-f3ae-407a-8f9d-dbc7a2857048.png

https://cdn.nlark.com/yuque/0/2021/png/576791/1631308847187-0d14ea2e-2e9e-4f3f-8f38-49d523fba05e.png

4. 方法引用与构造器引用

https://cdn.nlark.com/yuque/0/2021/png/576791/1631308863299-cf925403-22e0-43fa-ad93-0eb58222b93d.png

5. Stream API

6. 新的日期API

7. Optional 容器