成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

閑談Java9到Java20,你學會了嗎?

開發 前端
java21將是繼17之后的另一個LTS版本,目前規劃的有5個新特性。建議還停留在1.8的可以升級到17,已升級到17的,再等幾個月升級到21。總而言之,java9~20是個不斷吸取他人長處彌補自己短處的過程,java在進步,我們也是時候更近一步了。

一、概述

自從java9開始商用后,到現在一直停留在java8上。去年偶然看過說java17之后開始不商用了,而且springboot3和spring6最低要求JDK17,奈何太忙了一直沒時間去梳理。趁現在這段時間得空,從9開始到20,逐個的去梳理下,看看有哪些變化。當然了,限于個人能力有限,本文非正式說明,只是個人見解,不可當真。

先來個歷代特性數圖,心里有個大致的認知。

二、各版本簡介

2.1 JDK9

JDK9特性數最多的原因是這個版本引入了模塊化概念對JRE進行了優化,目錄結構和之前有很大不同。

還增加了一個jshell命令,實現在命令行也能快速執行java代碼的功能,對于一些簡單的main方法測試,但又不想建立工程來說,確實是比較方便。

java8的時候對接口進行了改動,使接口可以編寫方法體。java9對這一功能進行了升級,增加支持私有方法。

try-resource也進行了升級,可以直接傳入句柄不用再轉換了。

//jaba8
try(InputStream is =new FileInputStream(file)){

}catch (Exception e){
log.error(e);
}
//java9
InputStream is =new FileInputStream(file)
try(is){

}catch (Exception e){
log.error(e);
}

String類的底層由char數組換成了byte數據,節省了空間和提高了性能。

另外,java9自己實現了一套httpclient不用再引用第三方實現了。

2.2 JDK10

G1終于正名了,java10開始,G1成為默認垃圾回收器。

增加了一個關鍵詞:var,不同于js的var,java的var是個語法糖,依據上下文推斷,推測出具體類型,實際編譯時依然是原本類型。

集合增加了copyOf方法,可以復制出一個不可變的集合出來。

2.3 JDK11

擴大了var關鍵詞的應用范圍。

String增加類似trim的實用方法,可以不用再用lang3包實現了。

豐富了java9的httpclient包的方法。

引入了一個新的垃圾回收器:Epsilon。

2.4 JDK12

switch表達式優化1.0版,支持case多個字段

//java12以前
switch (no) {
case 1:
case 2:
case 3:
System.out.println(0);
break;
case 4:
System.out.println(4);
break;
case 5:
case 6:
System.out.println(6);
break;
case 7:
System.out.println(7);
break;
}
//java12
switch (no) {
case 1, 2, 3 -> System.out.println(0);
case 4 -> System.out.println(4);
case 5, 6 -> System.out.println(6);
case 7 -> System.out.println(7);
}

同時還支持將switvh結果賦值給對象上

int size = switch (no) {
case 1, 2, 3 -> 6;
case 4 -> 7;
case 5, 6 -> 8;
case 7 -> 9;
};

2.5 JDK一三(為啥敏感詞?)

支持了python的文本塊功能,大文本字符串再也不會亂了,尤其是使用mybatis注解方式的,SQL看起來會更清晰。

"""
a
b
n
"""

switch表達式優化1.1版,其實和java12寫法沒啥區別。

2.6 JDK14

switch表達式優化終版。

增加了Record類型的類,類似VO,但只提供getter不提供setter,對于javaee來說缺少setter是不香的。

instaceof初版優化,增加句柄,簡化類型強制轉換的操作,使代碼看著更整潔。

if (obj instanceof String s) { 
// can use s here
} else {
// can't use s here
}

2.7 JDK15

增加關鍵詞sealed,相比于final,sealed允許指定的類繼承。

2.8 JDK16

instaceof優化定版。

增加Vector向量計算類。

2.9 JDK17(LTS)

注意:自本版本開始,java恢復免費了。并且java17類似java8是個長期支持的版本。

支持蘋果的M系列芯片。

Switch支持類型推導了,不再限定數值、字符串了,同時還支持了case null。

// jdk17前
static void testFooBar(String s) {
if (s == null) {
System.out.println("123!");
return;
}
switch (s) {
case "1", "2" -> System.out.println("faild");
default -> System.out.println("Ok");
}
}
// jdk17
static void testFooBar(String s) {
switch (s) {
case null -> System.out.println("123");
case "1", "2" -> System.out.println("faild");
default -> System.out.println("Ok");
}
}

2.10 JDK18

默認UTF-8位默認編碼

增加jwebserver命令工具,可以直接啟動一個簡單的web服務。

javadoc支持新的注解,但是好像沒啥用。

重寫了反射,提高了反射性能。

switch又增強了,支持復雜的lamda表達式和類型推導。

2.11 JDK19

引入了虛擬線程,提高并發性能。

2.12 JDK20

java20多是對之前預覽或者改進中的功能繼續完善,沒有更多的新功能。

3、JDK21

java21將是繼17之后的另一個LTS版本,目前規劃的有5個新特性。建議還停留在1.8的可以升級到17,已升級到17的,再等幾個月升級到21。總而言之,java9~20是個不斷吸取他人長處彌補自己短處的過程,java在進步,我們也是時候更近一步了。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2024-01-19 08:25:38

死鎖Java通信

2023-01-28 09:50:17

java多線程代碼

2024-01-18 09:38:00

Java注解JDK5

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2022-09-26 08:49:11

Java架構CPU

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2024-03-06 08:28:16

設計模式Java

2022-06-16 07:50:35

數據結構鏈表

2022-12-06 07:53:33

MySQL索引B+樹

2023-01-31 08:02:18

2023-10-06 14:49:21

SentinelHystrixtimeout

2022-07-13 08:16:49

RocketMQRPC日志

2023-05-05 06:54:07

MySQL數據查詢

2023-03-26 22:31:29

2023-08-26 21:34:28

Spring源碼自定義

2023-06-26 13:08:52

GraphQL服務數據

2023-07-30 22:29:51

BDDMockitoAssert測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文成人在线 | 久久久成人动漫 | 日韩在线中文字幕 | 九九热最新地址 | 亚洲淫视频| www.国产精| 99久视频 | 国产视频中文字幕在线观看 | 亚洲精品一区二区 | 亚洲高清成人 | 亚洲精品在线免费看 | 男女羞羞视频网站 | 日韩一区二区在线视频 | 亚洲精品成人网 | 婷婷99| 日韩一区二区三区在线视频 | 亚洲精品欧美一区二区三区 | av网站免费 | 中文字幕av在线 | 欧美一区二区 | 欧美国产视频一区二区 | 日韩视频在线播放 | 成人影院在线视频 | 97成人在线 | 91久久精品一区二区二区 | 波多野结衣亚洲 | 国产免费一级一级 | 91麻豆精品国产91久久久更新资源速度超快 | 成人午夜影院 | 亚洲国内精品 | 日本免费视频在线观看 | 成人黄色网址大全 | 亚洲一二三在线 | 看片网站在线 | 毛片视频免费观看 | 国产精品久久久久久吹潮 | 99国内精品久久久久久久 | 一区二区三区中文字幕 | 天天色天天色 | 亚洲精品久久久一区二区三区 | 成人免费视屏 |