Java8從14年發布以來已經經歷了8年的廝殺,最終拼殺了Java50%的市場,可謂打遍天下無敵手。但是,隨著JDK17的發布,Spring6的更新,Java8受到極大的挑戰。這里我引用oracle官網的一張版本支持的線路圖
創新互聯公司主營鄠邑網站建設的網絡公司,主營網站建設方案,app開發定制,鄠邑h5微信小程序搭建,鄠邑網站營銷推廣歡迎鄠邑等地區企業咨詢Oracle Java SE支持路線圖
? 我們可以看到,JDK17也是官方提供的LTS版本,支持到2026。并且隨著Spring6、SpringBoot3的更新,JDK17在未來肯定會一點點侵蝕Java8到市場。現在就讓我們一起來了解一下JDK17一些實用的新特性。
? var是Java10新增的關鍵字,可以更簡潔的方式聲明局部變量,它可以自動推導變量類型
public class VarTest {
public static void main(String[] args) {
var str = "1";
System.out.println("var出來的string:"+ str); // var出來的string:1
var num = 1;
System.out.println("var出來的int:" + num); // var出來的int:1
var arr = new int[]{1, 2, 3};
System.out.println("var出來的array:"+ Arrays.toString(arr)); // var出來的array:[1, 2, 3]
var list = getList();
System.out.println("使用var接受方法返回值:" + list); // 使用var接受方法返回值:[1, 2, 3]
}
private static ListgetList() {
Listlist = new ArrayList<>();
for (int i = 1; i<= 3; i++) {
list.add(i);
}
return list;
}
}
switch表達式先后經過Java1.5、Java1.7兩個版本的增強,到Java8的時候,支持byte、short、char、int、枚舉類型、String類型,但是我們每一個case都要 break或者return,不然switch會依次執行每一個case。相信很多小伙伴在剛接觸的時候心里都發慌。好在JDK14幫我們解決了這個問題,我們不用使用break或者return也可以了。
public class SwitchTest {
public static void main(String[] args) {
var type = 8;
switchTest(type);
}
private static void switchTest(int type) {
switch (type) {
case 1 ->System.out.println("星期1");
case 2 ->System.out.println("星期2");
case 3 ->System.out.println("星期3");
case 4 ->System.out.println("星期4");
case 5 ->System.out.println("星期5");
case 6, 7 ->System.out.println("周末");
default ->System.out.println("輸入錯誤");
}
}
}
? 字符串加強是JDK15提供的功能,意在簡化json、標簽的書寫成本
public class StringTest {
public static void main(String[] args) {
String str = "{\"id\":1,\"name\":\"泉泉\"}";
System.out.println("普通字符串:" + str);
String jdk15JsonStr = """
{
"id":1,
"name":"泉泉"
}
""";
System.out.println("jdk15字符串加強:" + jdk15JsonStr);
}
}
instanceof加強是JDK16提供的特性,可以省去類型的轉化
public class InstanceofTest {
public static void main(String[] args) {
var data = getData();
Object key1 = data.get("key1");
Object key2 = data.get("key2");
// 傳統寫法
if (key1 instanceof String) {
String str = (String) key1;
System.out.println("key1是字符串:" + str);
}
if (key2 instanceof Integer) {
Integer num = (Integer) key2;
System.out.println("key2是Integer:" + num);
}
// jdk16簡化寫法
if (key1 instanceof String str) {
System.out.println("key1是字符串:" + str);
}
if (key2 instanceof Integer num) {
System.out.println("key2是Integer:" + num);
}
}
private static MapgetData() {
Mapdata = new HashMap<>();
data.put("key1", "aaa");
data.put("key2", 111);
return data;
}
}
JDK17帶來的更新遠不止這些,以上只是我們常用的一些特性,JDK17還有更多性能方面的提升,比如JVM和GC,當然還有強大的ZGC,隨著JDK17的普及,后面我們一起深入探討。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
新聞標題:JDK17上手,新特性讓你起飛-創新互聯
分享路徑:http://vcdvsql.cn/article36/pphpg.html
成都網站建設公司_創新互聯,為您提供小程序開發、關鍵詞優化、網站導航、網頁設計公司、Google、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯