Java8
Java8就不用说了,是一个里程碑式的版本,里面提供的Streams和Lambada编程。
具体可以参考我另一篇文章Java中的函数式编程 Java8日期时间API
Java9
1、增加了List.of()、Set.of()、Map.of()和Map.ofEntries()等工厂方法来创建不可变集合
不需要再new了
List list = List.of(1, 2, 3);
2、HTTP/2支持
之前http访问都会使用HttpClient,java中心的package:java.net.http,里面提供了对Http访问很好的支持,不仅支持Http1.1而且还支持HTTP2
Java10
1、局部变量类型推断
之前这样写List<String> list = new ArrayList<>() , 现在可以使用var关键字
var list = new ArrayList<>()
Java11
1、字符串加强
之前我们处理字符串都会使用第三方的工具类StringUtils,现在String类增加了这些方法。
" ".isBlank(); " Java ".strip(); ........
Java12
1、Switch提升
引入了->箭头,不需要每个分支都写break了
之前的写法:
switch(x) { case 1: { System.out.println(1); break; } case 2: { System.out.println(2); break; } default:{ System.out.println("default"); } }
新写法
switch(x) { case 1 -> System.out.println(1); case 2 -> System.out.println(2); }
Java13
1、Text Blocks (Preview)
将文本块添加到 Java 语言。文本块是一个多行字符串文字,它避免了对大多数转义序列的需要。
之前定义一段文本,需要对一些文本进行转义,现在不需要了
之前的写法(不易读):
String json = "{\"id\":1,\"name\":\"xiaoming\"}";
新写法
String json = """ {"id":1,"name":"xiaoming"} """;