中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JDK15新特性介紹

發布時間:2021-08-31 10:55:16 來源:億速云 閱讀:142 作者:chen 欄目:大數據

本篇內容主要講解“JDK15新特性介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JDK15新特性介紹”吧!

1、在CharSequence中添加了isEmpty默認方法
    定義isEmpty用于測試字符序列是否為空的默認方法,CharSequence::isEmpty可以用
作方法參考。實現的類java.lang.CharSequence和定義isEmpty方法的另一個接口應注意
這一點,因為可能需要對其進行修改以覆蓋isEmpty方法。

JDK15新特性介紹

2、支持Unicode 13.0
    此版本將Unicode支持升級到13.0,其中包括:java.lang.Character13.0水平,
這增加了13.0 5930個字符,總共143859個字符類支持Unicode字符數據庫。這些增加的內容包括4個新腳本,總共154個腳本,
以及55個新表情符號字符。
3、TreeMap新方法

TreeMap重新實現壓倒性一切的如:putIfAbsent、computeIfAbsent、computeIfPresent、compute、merage

舉例說明putIfAbsent等價于如下:

default V putIfAbsent(K key, V value)
 V v = map.get(key);
 if (v == null){
     v = map.put(key, value);
 }
    
 return v;
4、文本塊(最終版)

優勢:簡化了編寫Java程序的任務,同時避免了常見情況下的轉義序列;增強Java程序中表示用非Java語言編寫的代碼的字符串的可讀性。

String html = """ <html> <body> <p>Hello, world</p> </body> </html> """;
String query = """    
                SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
                WHERE `CITY` = 'INDIANAPOLIS'
                ORDER BY `EMP_ID`, `LAST_NAME`;
               """;
5、隱藏類

基于JVM構建的許多語言實現都依靠動態類生成來提高靈活性和效率。

詳情可見--> JEP371

6、 GC回收期

淘汰-XXUseAdaptiveGDBoundary

7、改進的序列化處理,IO
    使用java.io.ObjectInputStream.setObjectInputFilter方法設置序列化過濾器時,必
須在從流中讀取任何對象之前調用它。如果調用readObject或方法readUnshared,則該
setObjectInputFilter方法將引發IllegalStateException。
8、優化空子字符串處理,String.substring
在某些情況下,String.substring返回“”,但在子字符串長度為零時,在所有情況下都可以進行改進。

之前邏輯是返回“”,需要增加一個新的地址,而目前為null,如下

public static String stripLeading(byte[] value) {
  int left = indexOfNonWhitespace(value);
  if (left == value.length) {
    return "";
  }
  return (left != 0) ? newString(value, left, value.length - left) : null;
}
9、支持貨幣分組分隔符
    DecimalFormat / DecimalFormatSymbols類現在可以處理貨幣值的分組分隔符。例如,
在奧地利(de-AT語言環境)中使用的德語語言的貨幣分組分隔符為“。”,而在其他德語語言環境
中的貨幣分組分隔符為“。”。
10、time用默認值覆蓋本地化值
   java.time.format.DateTimeFormatter.localizedBy(Locale)方法現在采用默認
的語言環境值,例如Chronology和/或DecimalStyle指定的語言環境參數。

例如,在先前的JDK版本中:

jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)
    .localizedBy(Locale.forLanguageTag("fa"))
    .format(LocalDate.now())
$3 ==> "???? 1 ??? 2020"

數字是阿拉伯文(西文)數字,在JDK 15中:

jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)
    .localizedBy(Locale.forLanguageTag("fa"))
    .format(LocalDate.now())
$3 ==> "???? ? ??? ????"

這些數字使用擴展阿拉伯語-印度數字,因為它是波斯語區域設置的默認編號系統。

11、time ValueRange.of
     ValueRange.of(long min,long maxSmallest,long maxLargest),如果
最小值大于最小最大值,則將引發異常。但是,僅當最小值大于最大最大值時才會發生例外。
12、性能改進InflaterOutputStream.write
    1、InflaterOutputStream(OutputStream out, Inflater infl, int bufLen)允
許指定要使用的解壓縮器和緩沖區大小。
    2、InflaterOutputStream.write(byte[] b, int off, int len)
正在使用最大512字節的緩沖區大小寫入數據。
    3、從JDK 15開始,通過InflaterOutputStream(OutputStream out, Inflater 
infl,int bufLen)所指定的緩沖區大小將在對的調用中使用InflaterOutputStream.write(
byte[] b,int off, int len)。如果在調用InflaterOutputStream 構造函數時未指定緩沖
區大小,則默認為512字節。
13、集合性能提升(Better Listing of Arrays)
    復制集合的首選方法是使用“復制構造函數”。例如,要將集合復制到新的ArrayList中,
可以編寫new ArrayList<>(collection)。在某些情況下,可能會制作其他臨時副本,如
果要復制的集合非常大,則應用程序應(意識到/監視)制作副本所需的大量資源。
14、GC:G1優化

針對G1堆區域大小的改進

    默認的堆區域大小計算已更改為默認情況下返回較大的區域。計算仍以2048個區域為目標,
但是兩個方面發生了變化,這些更改提高了啟動和運行時性能
    1、僅考慮最大堆大小。舊的計算還考慮了初始堆大小,但是當未設置堆大小時,這可能會
產生意外的行為。
    2、區域大小四舍五入到最接近的2的冪,而不是減小。在最大堆大小不是2的冪的情況下,
這將返回更大的區域大小。
15、ZGC一種可擴展低延遲垃圾收集器
    Z垃圾收集器(ZGC)現在可以在生產中使用,不再標記為實驗功能。通過使用-XX:+UseZGC命
令行選項啟用ZGC
16、模式匹配的instanceof(第二預覽版)

提供模式匹配來 增強Java編程語言instanceof

if (obj instanceof String s) { 
    // can use s here     } else {     // can't use s here }
17、Record(第二預覽版)
@Data@AllArgsConstructorclass Group {// 組名    private String name;// 人數    private int nums;
}

使用它可以替代構造器、equal方法、toString方法,hashCode方法

Point(String name,int nums){}

    Java語言中一種新型的類型聲明。像枚舉一樣enum, record是類的受限形式。聲明其表示形式,并提交與該表示形式匹配的API。記錄放棄了類通常享有的自由:將API與表示分離的能力。作為回報,記錄獲得了很大程度的簡潔性。

到此,相信大家對“JDK15新特性介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黑水县| 南平市| 台中市| 梅河口市| 萨嘎县| 棋牌| 海口市| 孟津县| 方正县| 措勤县| 新巴尔虎左旗| 马龙县| 三门县| 拜城县| 茂名市| 富锦市| 博罗县| 邢台市| 孟州市| 长白| 勃利县| 北海市| 潞西市| 滦南县| 长春市| 南京市| 灵寿县| 满洲里市| 余姚市| 萝北县| 丹凤县| 林周县| 香格里拉县| 仪陇县| 潍坊市| 开化县| 鹤岗市| 思南县| 淮北市| 凤翔县| 呼图壁县|