這篇文章主要講解了JDK12的五大重要新特性,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出潁州免費(fèi)做網(wǎng)站回饋大家。
JDK12的五大重要新特性
Java12在March 19, 2019發(fā)布了。
在2017年發(fā)布Java 9之后,Java平臺(tái)發(fā)布節(jié)奏已從每3年以上的主要版本轉(zhuǎn)變?yōu)槊?個(gè)月發(fā)布一次功能?,F(xiàn)在,每年的3月和9月都會(huì)發(fā)布新的版本功能。 從而提供了更細(xì)化,更快和可管理的版本更新。
這是一個(gè)好消息,不好的就是大家會(huì)覺(jué)得JDK的版本更新太快了。
什么?JDK12已經(jīng)出來(lái)了?
什么?9月份要出JDK13了?
什么?我還在用JDK8?
廢話少說(shuō),我們來(lái)看下JDK12的五個(gè)比較重要的新特性:
引入JVM常量API
每個(gè)Java類(lèi)文件都有一個(gè)常量池,該池存儲(chǔ)該類(lèi)中字節(jié)碼指令的操作。廣義上講,常量池中的條目要么描述運(yùn)行時(shí)artifacts(例如類(lèi)和方法),要么描述簡(jiǎn)單值(例如字符串和整數(shù))。
所有這些條目都稱為可加載常量,因?yàn)樗鼈兛梢杂米鱨dc指令的參數(shù)(“加載常量”)。它們也可能出現(xiàn)在invokedynamic指令的引導(dǎo)方法的靜態(tài)參數(shù)列表中。執(zhí)行l(wèi)dc或invokedynamic指令會(huì)導(dǎo)致將可加載常量解析為標(biāo)準(zhǔn)Java類(lèi)型(如Class,String或int)的“實(shí)時(shí)”值。
處理類(lèi)文件的程序需要對(duì)字節(jié)碼指令進(jìn)行建模,然后對(duì)可加載常量進(jìn)行建模。但是,使用標(biāo)準(zhǔn)Java類(lèi)型對(duì)可加載常量進(jìn)行建模是不夠的。
描述一個(gè)字符串(一個(gè)CONSTANT_String_info條目)的可加載常量可能是可以接受的,因?yàn)樯梢粋€(gè)“l(fā)ive” String對(duì)象是很簡(jiǎn)單的,但是對(duì)于描述一個(gè)類(lèi)(一個(gè)CONSTANT_Class_info條目)的一個(gè)可加載常量來(lái)說(shuō),這是有問(wèn)題的,因?yàn)樯梢粋€(gè)“l(fā)ive”類(lèi)對(duì)象依賴于類(lèi)加載的正確性和一致性。
在實(shí)際應(yīng)用中,類(lèi)加載具有許多環(huán)境依賴性和失敗的情況,例如:所需的類(lèi)不存在或請(qǐng)求者可能無(wú)法訪問(wèn);類(lèi)加載的結(jié)果隨上下文而變化;加載類(lèi)具有副作用;有時(shí)根本不可能加載類(lèi)。
因此,處理可加載常量的程序如果能夠操縱類(lèi)和方法,并且以純名義上的符號(hào)形式操縱諸如方法句柄和動(dòng)態(tài)計(jì)算的常量之類(lèi)的artifacts,則它們將變得更加簡(jiǎn)單。
JDK12在新包java.lang.invoke.constant中定義了一系列基于值的符號(hào)引用(JVMS 5.1)類(lèi)型,它們能夠描述每種可加載常量。符號(hào)引用以純字面的形式描述了可加載常量,與類(lèi)加載或可訪問(wèn)性上下文分開(kāi)。某些類(lèi)可以充當(dāng)自己的符號(hào)引用(例如String);對(duì)于可鏈接常量,JDK12定義了一系列符號(hào)引用類(lèi)型(ClassDesc,MethodTypeDesc,MethodHandleDesc和DynamicConstantDesc),來(lái)包含描述這些常量的信息。
擴(kuò)展了switch語(yǔ)句
這是JEP 325提出的一個(gè)預(yù)覽版本的預(yù)發(fā)特性?,F(xiàn)在被JDK13的 JEP 354替代了。
簡(jiǎn)單點(diǎn)講就是擴(kuò)展了switch語(yǔ)法,可以用作語(yǔ)句或表達(dá)式。
老的寫(xiě)法:
switch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: System.out.println(7); break; case THURSDAY: case SATURDAY: System.out.println(8); break; case WEDNESDAY: System.out.println(9); break; }
新的寫(xiě)法:
switch (day) { case MONDAY, FRIDAY, SUNDAY -> System.out.println(6); case TUESDAY -> System.out.println(7); case THURSDAY, SATURDAY -> System.out.println(8); case WEDNESDAY -> System.out.println(9); }
還可以有返回值:
int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; };
支持Unicode 11.0
JDK 12版本包含對(duì)Unicode 11.0.0的支持。 在支持Unicode 10.0.0的JDK 11發(fā)行之后,Unicode 11.0.0引入了JDK 12現(xiàn)在包含的以下新功能:
為日本Reiwa Era提供了方形字符支持
簡(jiǎn)單點(diǎn)說(shuō)就是日本朝代更替,造了一個(gè)新字(Reiwa 令和)。所以需要Unicode的支持。
Unicode聯(lián)盟為這個(gè)字保留代碼:U+32FF。
現(xiàn)在的日本朝代叫:(Heisei 平成)。 是指日本歷史的一段時(shí)期,對(duì)應(yīng)于明仁天皇從1989年1月8日至至2019年4月30日退位。
他的兒子Naruhito皇太子于5月1日成為新的天皇后,改朝代名為:Reiwa。
NumberFormat增加了對(duì)以緊湊格式格式化數(shù)字的支持
NumberFormat增加了以緊湊格式格式化數(shù)字的支持。 緊湊的數(shù)字格式是指數(shù)字的簡(jiǎn)短形式或易于理解的形式。 例如,在en_US語(yǔ)言環(huán)境中,根據(jù)NumberFormat.Style指定的樣式,可以將1000格式化為“ 1K”,將1000000格式化為“ 1M”。 緊湊數(shù)字格式由LDML的緊湊數(shù)字格式規(guī)范定義。 若要獲取實(shí)例,請(qǐng)使用NumberFormat給出的工廠方法之一來(lái)進(jìn)行緊湊數(shù)字格式化。 例如:
NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US,NumberFormat.Style.SHORT); String result = fmt.format(1000);
上面的示例生成“ 1K”。
看完上述內(nèi)容,是不是對(duì)JDK12的五大重要新特性有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前題目:JDK12的五大重要新特性
URL分享:http://aaarwkj.com/article28/ipdjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、服務(wù)器托管、小程序開(kāi)發(fā)、搜索引擎優(yōu)化、手機(jī)網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)