亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺析JDK12的五大重要新特性(推薦)

 更新時間:2020年05月13日 09:48:03   作者:flydean程序那些事  
這篇文章主要介紹了JDK12的五大重要新特性,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

JDK12的五大重要新特性

Java12在March 19, 2019發(fā)布了。

在2017年發(fā)布Java 9之后,Java平臺發(fā)布節(jié)奏已從每3年以上的主要版本轉變?yōu)槊?個月發(fā)布一次功能。現(xiàn)在,每年的3月和9月都會發(fā)布新的版本功能。 從而提供了更細化,更快和可管理的版本更新。

這是一個好消息,不好的就是大家會覺得JDK的版本更新太快了。

什么?JDK12已經出來了?

什么?9月份要出JDK13了?

什么?我還在用JDK8?

廢話少說,我們來看下JDK12的五個比較重要的新特性:

  • 引入JVM常量API
  • 擴展了switch語句
  • 支持Unicode 11.0
  • 為日本Reiwa Era提供了方形字符支持
  • NumberFormat增加了對以緊湊格式格式化數字的支持

引入JVM常量API

每個Java類文件都有一個常量池,該池存儲該類中字節(jié)碼指令的操作。廣義上講,常量池中的條目要么描述運行時artifacts(例如類和方法),要么描述簡單值(例如字符串和整數)。

所有這些條目都稱為可加載常量,因為它們可以用作ldc指令的參數(“加載常量”)。它們也可能出現(xiàn)在invokedynamic指令的引導方法的靜態(tài)參數列表中。執(zhí)行l(wèi)dc或invokedynamic指令會導致將可加載常量解析為標準Java類型(如Class,String或int)的“實時”值。

處理類文件的程序需要對字節(jié)碼指令進行建模,然后對可加載常量進行建模。但是,使用標準Java類型對可加載常量進行建模是不夠的。

描述一個字符串(一個CONSTANT_String_info條目)的可加載常量可能是可以接受的,因為生成一個“l(fā)ive” String對象是很簡單的,但是對于描述一個類(一個CONSTANT_Class_info條目)的一個可加載常量來說,這是有問題的,因為生成一個“l(fā)ive”類對象依賴于類加載的正確性和一致性。

在實際應用中,類加載具有許多環(huán)境依賴性和失敗的情況,例如:所需的類不存在或請求者可能無法訪問;類加載的結果隨上下文而變化;加載類具有副作用;有時根本不可能加載類。

因此,處理可加載常量的程序如果能夠操縱類和方法,并且以純名義上的符號形式操縱諸如方法句柄和動態(tài)計算的常量之類的artifacts,則它們將變得更加簡單。

JDK12在新包java.lang.invoke.constant中定義了一系列基于值的符號引用(JVMS 5.1)類型,它們能夠描述每種可加載常量。符號引用以純字面的形式描述了可加載常量,與類加載或可訪問性上下文分開。某些類可以充當自己的符號引用(例如String);對于可鏈接常量,JDK12定義了一系列符號引用類型(ClassDesc,MethodTypeDesc,MethodHandleDesc和DynamicConstantDesc),來包含描述這些常量的信息。

擴展了switch語句

這是JEP 325提出的一個預覽版本的預發(fā)特性。現(xiàn)在被JDK13的 JEP 354替代了。

簡單點講就是擴展了switch語法,可以用作語句或表達式。

老的寫法:

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;
}

新的寫法:

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版本包含對Unicode 11.0.0的支持。 在支持Unicode 10.0.0的JDK 11發(fā)行之后,Unicode 11.0.0引入了JDK 12現(xiàn)在包含的以下新功能:

  • 684個新字符
  • 11個新blocks
  • 7個新腳本。

為日本Reiwa Era提供了方形字符支持

簡單點說就是日本朝代更替,造了一個新字(Reiwa 令和)。所以需要Unicode的支持。

Unicode聯(lián)盟為這個字保留代碼:U+32FF。

現(xiàn)在的日本朝代叫:(Heisei 平成)。 是指日本歷史的一段時期,對應于明仁天皇從1989年1月8日至至2019年4月30日退位。

他的兒子Naruhito皇太子于5月1日成為新的天皇后,改朝代名為:Reiwa。

NumberFormat增加了對以緊湊格式格式化數字的支持

NumberFormat增加了以緊湊格式格式化數字的支持。 緊湊的數字格式是指數字的簡短形式或易于理解的形式。 例如,在en_US語言環(huán)境中,根據NumberFormat.Style指定的樣式,可以將1000格式化為“ 1K”,將1000000格式化為“ 1M”。 緊湊數字格式由LDML的緊湊數字格式規(guī)范定義。 若要獲取實例,請使用NumberFormat給出的工廠方法之一來進行緊湊數字格式化。 例如:

NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US,NumberFormat.Style.SHORT);
String result = fmt.format(1000);

上面的示例生成“ 1K”。

總結

到此這篇關于JDK12的五大重要新特性的文章就介紹到這了,更多相關jdk12 新特征內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中@DS+@Transactional注解切換數據源失效解決方案

    Java中@DS+@Transactional注解切換數據源失效解決方案

    本文主要介紹了@DS+@Transactional注解切換數據源失效解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • java 虛擬機中對象訪問詳解

    java 虛擬機中對象訪問詳解

    這篇文章主要介紹了java 虛擬機中對象訪問詳解的相關資料,需要的朋友可以參考下
    2017-03-03
  • Java日期轉換注解配置date?format時間失效

    Java日期轉換注解配置date?format時間失效

    這篇文章主要為大家介紹了Java日期轉換注解配置date?format時間失效,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Gson序列化指定忽略字段的三種寫法詳解

    Gson序列化指定忽略字段的三種寫法詳解

    在我們日常使用json序列化框架過程中,經常會遇到在輸出json字符串時,忽略某些字段,那么在Gson框架中,要想實現(xiàn)這種方式,可以怎么處理呢,本文就來介紹一下
    2021-10-10
  • Java NIO Files類讀取文件流方式小結

    Java NIO Files類讀取文件流方式小結

    本文主要介紹了Java NIO Files類讀取文件流方式小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Java中@JSONField和@JsonProperty注解的用法及區(qū)別詳解

    Java中@JSONField和@JsonProperty注解的用法及區(qū)別詳解

    @JsonProperty和@JSONField注解都是為了解決obj轉json字符串的時候,將java bean的屬性名替換成目標屬性名,下面這篇文章主要給大家介紹了關于Java中@JSONField和@JsonProperty注解的用法及區(qū)別的相關資料,需要的朋友可以參考下
    2024-06-06
  • 解析電子郵件的基本概念及JavaMail API郵件功能使用

    解析電子郵件的基本概念及JavaMail API郵件功能使用

    這篇文章主要介紹了電子郵件的基本概念及JavaMail API郵件功能使用,包括用Java來發(fā)送郵件的示例,需要的朋友可以參考下
    2016-02-02
  • Java如何實現(xiàn)簡單的RPC框架

    Java如何實現(xiàn)簡單的RPC框架

    這篇文章主要介紹了Java如何實現(xiàn)簡單的RPC框架,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • IDEA上實現(xiàn)JDBC編程的方法步驟

    IDEA上實現(xiàn)JDBC編程的方法步驟

    本文主要介紹了IDEA上實現(xiàn)JDBC編程的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Java如何實現(xiàn)List自定義排序

    Java如何實現(xiàn)List自定義排序

    這篇文章主要介紹了Java如何實現(xiàn)List自定義排序,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09

最新評論