1 Lambda表达式
类似JS的匿名函数
2 方法引用
方法引用 :: 可以用来指出以下类型的方法:
- 静态方法
- 实例方法
- 使用new运算符的构造函数
例如:System.out::PrintIn()
3 功能接口
功能接口具有可展示的单一功能,例如单个方法compareTo的Comparable接口用于比较目的
4 默认方法
声明方式:使用default关键字声明一个方法为默认方法
- 出现背景(原因):
如果定义了一个接口,该接口中定义了很多方法,那么某个类在实现该接口时需要实现接口中定义的所有方法,不管这个类是否需要该方法。
但是如果接口中的某个方法被default关键字修饰了,那么类在实现接口时可以不用实现该方法。
- 解决冲突
如果实现类实现了很多接口,且这些接口中有同名、被default修饰的方法,那么此时实现类就必须重写该方法,否则编译会出错。
5 流
6 可选类
7 Nashorn,JavaScript引擎
8 新的日期、时间
9 Base64
Java8具有用于Base64编码的内置编码器和解码器,可以使用如下三种类型的Base64编码:
- Simple:输出映射到位于 A-Za-z0-9+/中的一组字符。编码器不会在输出中添加换行符,并且编码器拒绝除A-Za-z0-9+/ 之外的字符
- URL:输出被映射到位于A-Za-z0-9+ _ 中的一组字符,输出是URL和 文件名安全(?)
- MIME:输出被映射为MIME友好格式,即输出以每行不超过76个字符的行表示,并使用回车\r 作为行分隔符,后接换行符\n ,编码输出的末尾不存在行分隔符