jdk各版本新特性及代码示例
时间: 2023-02-11 18:01:30 浏览: 164
jdk1.8新特性总结及使用示例
Java SE 11 (18.9 LTS) 版本中引入了以下新特性:
- 新的基于字符串的switch语句语法
```java
String day = "SUNDAY";
switch (day) {
case "MONDAY" : System.out.println("Mondays are bad.");
break;
case "FRIDAY" : System.out.println("Fridays are better.");
break;
case "SATURDAY" :
case "SUNDAY" : System.out.println("Weekends are best.");
break;
default : System.out.println("Midweek days are so-so.");
break;
}
```
- 用 var 声明本地变量,编译器会自动推断变量类型
```java
var list = new ArrayList<String>();
list.add("item");
```
- 集合的新的创建方式
```java
List<Integer> ints = List.of(1, 2, 3);
Map<String, Integer> map = Map.of("a", 1, "b", 2);
```
Java SE 14 (17.03 LTS) 中引入了以下新特性:
- 优化的类型推断,支持在一些额外的地方使用var
```java
var stream = Stream.of(1, 2, 3);
var entry = stream.collect(Collectors.toMap(
i -> i,
i -> i * i)).entrySet().iterator().next();
```
- 可以更简洁的描述和操作数字
```java
var x = 10;
x += 5;
x *= 2;
```
- 新的 Records (JEP 359) ,是一种简化的数据类型,可以自动生成所有的 构造函数, accessor方法, equals, hashCode和toString
```java
record Point(int x, int y) {}
Point p = new Point(1, 2);
```
这仅仅是部分新特性,具体请查看官方文档.
阅读全文