本篇內(nèi)容主要講解“JDK15新特性介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“JDK15新特性介紹”吧!
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供達(dá)孜企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為達(dá)孜眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
定義isEmpty用于測(cè)試字符序列是否為空的默認(rèn)方法,CharSequence::isEmpty可以用 作方法參考。實(shí)現(xiàn)的類java.lang.CharSequence和定義isEmpty方法的另一個(gè)接口應(yīng)注意 這一點(diǎn),因?yàn)榭赡苄枰獙?duì)其進(jìn)行修改以覆蓋isEmpty方法。
此版本將Unicode支持升級(jí)到13.0,其中包括:java.lang.Character13.0水平, 這增加了13.0 5930個(gè)字符,總共143859個(gè)字符類支持Unicode字符數(shù)據(jù)庫。這些增加的內(nèi)容包括4個(gè)新腳本,總共154個(gè)腳本, 以及55個(gè)新表情符號(hào)字符。
TreeMap重新實(shí)現(xiàn)壓倒性一切的如:putIfAbsent、computeIfAbsent、computeIfPresent、compute、merage
舉例說明putIfAbsent等價(jià)于如下:
default V putIfAbsent(K key, V value)
V v = map.get(key); if (v == null){ v = map.put(key, value); } return v;
優(yōu)勢(shì):簡(jiǎn)化了編寫Java程序的任務(wù),同時(shí)避免了常見情況下的轉(zhuǎn)義序列;增強(qiáng)Java程序中表示用非Java語言編寫的代碼的字符串的可讀性。
String html = """Hello, world
""";
String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'INDIANAPOLIS' ORDER BY `EMP_ID`, `LAST_NAME`; """;
基于JVM構(gòu)建的許多語言實(shí)現(xiàn)都依靠動(dòng)態(tài)類生成來提高靈活性和效率。
詳情可見--> JEP371
淘汰-XXUseAdaptiveGDBoundary
使用java.io.ObjectInputStream.setObjectInputFilter方法設(shè)置序列化過濾器時(shí),必 須在從流中讀取任何對(duì)象之前調(diào)用它。如果調(diào)用readObject或方法readUnshared,則該 setObjectInputFilter方法將引發(fā)IllegalStateException。
在某些情況下,String.substring返回“”,但在子字符串長(zhǎng)度為零時(shí),在所有情況下都可以進(jìn)行改進(jìn)。
之前邏輯是返回“”,需要增加一個(gè)新的地址,而目前為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; }
DecimalFormat / DecimalFormatSymbols類現(xiàn)在可以處理貨幣值的分組分隔符。例如, 在奧地利(de-AT語言環(huán)境)中使用的德語語言的貨幣分組分隔符為“?!?,而在其他德語語言環(huán)境 中的貨幣分組分隔符為“?!?。
java.time.format.DateTimeFormatter.localizedBy(Locale)方法現(xiàn)在采用默認(rèn) 的語言環(huán)境值,例如Chronology和/或DecimalStyle指定的語言環(huán)境參數(shù)。
例如,在先前的JDK版本中:
jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) .localizedBy(Locale.forLanguageTag("fa")) .format(LocalDate.now()) $3 ==> "???? 1 ??? 2020"
數(shù)字是阿拉伯文(西文)數(shù)字,在JDK 15中:
jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) .localizedBy(Locale.forLanguageTag("fa")) .format(LocalDate.now()) $3 ==> "???? ? ??? ????"
這些數(shù)字使用擴(kuò)展阿拉伯語-印度數(shù)字,因?yàn)樗遣ㄋ拐Z區(qū)域設(shè)置的默認(rèn)編號(hào)系統(tǒng)。
ValueRange.of(long min,long maxSmallest,long maxLargest),如果 最小值大于最小最大值,則將引發(fā)異常。但是,僅當(dāng)最小值大于最大最大值時(shí)才會(huì)發(fā)生例外。
1、InflaterOutputStream(OutputStream out, Inflater infl, int bufLen)允 許指定要使用的解壓縮器和緩沖區(qū)大小。 2、InflaterOutputStream.write(byte[] b, int off, int len) 正在使用最大512字節(jié)的緩沖區(qū)大小寫入數(shù)據(jù)。 3、從JDK 15開始,通過InflaterOutputStream(OutputStream out, Inflater infl,int bufLen)所指定的緩沖區(qū)大小將在對(duì)的調(diào)用中使用InflaterOutputStream.write( byte[] b,int off, int len)。如果在調(diào)用InflaterOutputStream 構(gòu)造函數(shù)時(shí)未指定緩沖 區(qū)大小,則默認(rèn)為512字節(jié)。
復(fù)制集合的首選方法是使用“復(fù)制構(gòu)造函數(shù)”。例如,要將集合復(fù)制到新的ArrayList中, 可以編寫new ArrayList<>(collection)。在某些情況下,可能會(huì)制作其他臨時(shí)副本,如 果要復(fù)制的集合非常大,則應(yīng)用程序應(yīng)(意識(shí)到/監(jiān)視)制作副本所需的大量資源。
針對(duì)G1堆區(qū)域大小的改進(jìn)
默認(rèn)的堆區(qū)域大小計(jì)算已更改為默認(rèn)情況下返回較大的區(qū)域。計(jì)算仍以2048個(gè)區(qū)域?yàn)槟繕?biāo), 但是兩個(gè)方面發(fā)生了變化,這些更改提高了啟動(dòng)和運(yùn)行時(shí)性能 1、僅考慮最大堆大小。舊的計(jì)算還考慮了初始堆大小,但是當(dāng)未設(shè)置堆大小時(shí),這可能會(huì) 產(chǎn)生意外的行為。 2、區(qū)域大小四舍五入到最接近的2的冪,而不是減小。在最大堆大小不是2的冪的情況下, 這將返回更大的區(qū)域大小。
Z垃圾收集器(ZGC)現(xiàn)在可以在生產(chǎn)中使用,不再標(biāo)記為實(shí)驗(yàn)功能。通過使用-XX:+UseZGC命 令行選項(xiàng)啟用ZGC
提供模式匹配來 增強(qiáng)Java編程語言instanceof
if (obj instanceof String s) { // can use s here } else { // can't use s here }
@Data@AllArgsConstructorclass Group {// 組名 private String name;// 人數(shù) private int nums; }
使用它可以替代構(gòu)造器、equal方法、toString方法,hashCode方法
Point(String name,int nums){}
Java語言中一種新型的類型聲明。像枚舉一樣enum, record是類的受限形式。聲明其表示形式,并提交與該表示形式匹配的API。記錄放棄了類通常享有的自由:將API與表示分離的能力。作為回報(bào),記錄獲得了很大程度的簡(jiǎn)潔性。
到此,相信大家對(duì)“JDK15新特性介紹”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!