[toc]
java8特性#
1. lambda表达式。把函数作为一个方法的参数#
- 也叫闭包
- 相对应的,还多了函数式接口,二者可以配合使用
2. Stream api#
- 提供一种对Java集合运算和表达的高阶抽象,引入map、reduce等方法。
- map方法中还支持 类名::方法名的调用方式,来单独调用方法
把map(a->a.getX())简写成了map(A::getX)
3.新增了接口的默认方法,支持default实现了#
4.新增Optional 类,解决空指针判断问题#
5.新增Base64编码库#
JAVA11新特性#
1. 支持局部变量类型推断#
可以写var这种变量声明了,编译器能自动识别,可加快部分情况下的编程速度。
var a = 1;
var s = “abcd”;
但是会加重编译器负担。
2. 字符串api增强#
1 | public static void main(String[] args) { |
3. stream增强#
- 支持Stream.ofNullable(null)生成一个值的流
- 支持while循环,符合一个条件就take结束或者开始计算
1 | // 从第一个开始计算,当 n < 3 时就截止 |
4. Optional增强#
支持orElseThrow等语法。
5. 正式引入HTTP Client API#
和Apache 的 HttpClient的区别?
6.支持jshell,类似py shell#
可以节省验证demo的时间