欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

五、Java12新特性概述-創(chuàng)新互聯(lián)

五、Java 12 新特性概述

JDK12 在 2019 年 3 月 19 號(hào)正式發(fā)布,不同于JDK11,JDK12并不是一個(gè)LTS版本。作為一個(gè)中間版本,JDK12版本特性增加較少。 2017年宣布的加速發(fā)布節(jié)奏要求每六個(gè)月發(fā)布一次功能,每季度更新一次,每三年發(fā)布一次長(zhǎng)期支持(LTS)更新版本(或每六個(gè)版本一次)。

10年的息縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整息縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“息縣網(wǎng)站設(shè)計(jì)”,“息縣網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1、知識(shí)體系

在這里插入圖片描述

2、新功能和庫的更新 1、JEP334: JVM常量API

每個(gè)Java類文件都有一個(gè)常量池,該池存儲(chǔ)該類中字節(jié)碼指令的操作。廣義上講,常量池中的條目要么描述運(yùn)行時(shí)artifacts(例如類和方法),要么描述簡(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類型(如Class,String或int)的“實(shí)時(shí)”值。

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

描述一個(gè)字符串(一個(gè)CONSTANT_String_info條目)的可加載常量可能是可以接受的,因?yàn)樯梢粋€(gè)“l(fā)ive” String對(duì)象是很簡(jiǎn)單的,但是對(duì)于描述一個(gè)類(一個(gè)CONSTANT_Class_info條目)的一個(gè)可加載常量來說,這是有問題的,因?yàn)樯梢粋€(gè)“l(fā)ive”類對(duì)象依賴于類加載的正確性和一致性。

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

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

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

2、JEP341: 默認(rèn)CDS歸檔

通過在64位平臺(tái)上的默認(rèn)類列表的幫助下生成CDS歸檔來改進(jìn)JDK構(gòu)建過程,從而有效地消除了運(yùn)行java -Xshare:dump。 此功能的目標(biāo)包括:

  • 改進(jìn)開箱即用的啟動(dòng)時(shí)間
  • 擺脫使用-Xshare:dump
3、JEP230: Microbenchmark測(cè)試套件

此功能為JDK源代碼添加了一套Microbenchmark測(cè)試(大約100個(gè)),簡(jiǎn)化了現(xiàn)有Microbenchmark測(cè)試的運(yùn)行和新基準(zhǔn)測(cè)試的創(chuàng)建過程。 它基于Java Microbenchmark Harness(JMH)并支持JMH更新。

此功能使開發(fā)人員可以輕松運(yùn)行當(dāng)前的Microbenchmark測(cè)試并為JDK源代碼添加新的Microbenchmark測(cè)試。 可以基于Java Microbenchmark Harness(JMH)輕松測(cè)試JDK性能。 它將支持JMH更新,并在套件中包含一組(約100個(gè))基準(zhǔn)測(cè)試。

3、新的平臺(tái)支持 1、JEP340: 移除多余ARM64實(shí)現(xiàn)

Java 12將只有一個(gè)ARM 64位實(shí)現(xiàn)(aarch64)。 目標(biāo)是刪除所有與arm64實(shí)現(xiàn)相關(guān)的代碼,同時(shí)保留32位ARM端口和64位aarch64實(shí)現(xiàn)。

這將把重點(diǎn)轉(zhuǎn)移到單個(gè)64位ARM實(shí)現(xiàn),并消除維護(hù)兩個(gè)實(shí)現(xiàn)所需的重復(fù)工作。 當(dāng)前的JDK 11實(shí)現(xiàn)中有兩個(gè)64位ARM實(shí)現(xiàn)。

4、JVM 優(yōu)化 1、JPE 344: G1的可中斷 mixed GC

此功能通過將Mixed GC集拆分為強(qiáng)制部分和可選部分,使G1垃圾收集器更有效地中止垃圾收集過程。通過允許垃圾收集過程優(yōu)先處理強(qiáng)制集,g1可以更多滿足滿足暫停時(shí)間目標(biāo)。

G1是一個(gè)垃圾收集器,設(shè)計(jì)用于具有大量?jī)?nèi)存的多處理器機(jī)器。由于它提高了性能效率,g1垃圾收集器最終將取代cms垃圾收集器。

G1垃圾收集器的主要目標(biāo)之一是滿足用戶設(shè)置的暫停時(shí)間。G1采用一個(gè)分析引擎來選擇在收集期間要處理的工作量。此選擇過程的結(jié)果是一組稱為GC集的區(qū)域。一旦GC集建立并且GC已經(jīng)開始,那么G1就無法停止。

如果G1發(fā)現(xiàn)GC集選擇選擇了錯(cuò)誤的區(qū)域,它會(huì)將GC區(qū)域的拆分為兩部分(強(qiáng)制部分和可選部分)來切換到處理Mix GC的增量模式。如果未達(dá)到暫停時(shí)間目標(biāo),則停止對(duì)可選部分的垃圾收集。

2、JEP 346: G1歸還不使用的內(nèi)存

此功能的主要目標(biāo)是改進(jìn)G1垃圾收集器,以便在不活動(dòng)時(shí)將Java堆內(nèi)存歸還給操作系統(tǒng)。 為實(shí)現(xiàn)此目標(biāo),G1將在低應(yīng)用程序活動(dòng)期間定期生成或持續(xù)循環(huán)檢查完整的Java堆使用情況。

這將立即歸還未使用的部分Java堆內(nèi)存給操作系統(tǒng)。 用戶可以選擇執(zhí)行FULL GC以大化返回的內(nèi)存量。

5、新功能的預(yù)覽和實(shí)驗(yàn) 1、JEP 189: Shenandoah:低暫停時(shí)間垃圾收集器(實(shí)驗(yàn))

JDK 12 引入的回收算法(實(shí)驗(yàn)階段),該算法通過與正在運(yùn)行的 Java 線程同時(shí)進(jìn)行疏散工作來減少 GC 暫停時(shí)間。Shenandoah 的暫停時(shí)間與堆大小無關(guān),無論堆棧是 200 MB 還是 200 GB,都具有相同的一致暫停時(shí)間。

Shenandoah適用于高吞吐和大內(nèi)存場(chǎng)景,不適合高實(shí)時(shí)性場(chǎng)景。Shenandoah算法設(shè)計(jì)目標(biāo)主要是響應(yīng)性和一致可控的短暫停頓,對(duì)于垃圾回收生命周期中安全點(diǎn)停頓(TTSP)和內(nèi)存增長(zhǎng)監(jiān)控的時(shí)間開銷并無幫助。

Shenandoah算法為每個(gè)Java對(duì)象添加了一個(gè)間接指針,使得GC線程能夠在Java線程運(yùn)行時(shí)壓縮堆。標(biāo)記和壓縮是同時(shí)執(zhí)行的,因此我們只需要暫停Java線程在一致可控的時(shí)間內(nèi)掃描線程堆棧以查找和更新對(duì)象圖的根。

怎么形容Shenandoah和ZGC的關(guān)系呢?異同點(diǎn)大概如下:

  • 相同點(diǎn):性能幾乎可認(rèn)為是相同的
  • 不同點(diǎn):ZGC是Oracle JDK的。而Shenandoah只存在于OpenJDK中,因此使用時(shí)需注意你的JDK版本
  • 打開方式:使用-XX:+UseShenandoahGC命令行參數(shù)打開。
2、JEP 325: Switch 表達(dá)式 (預(yù)覽版本)

在 Java 12 中引入了 Switch 表達(dá)式作為預(yù)覽特性

在 Java 12 之前,傳統(tǒng) Switch 語句寫法為:

private static String getText(int number) {String result = "";
    switch (number) {case 1, 2:
            result = "one or two";
            break;
        case 3:
            result = "three";
            break;
        case 4, 5, 6:
            result = "four or five or six";
            break;
        default:
            result = "unknown";
            break;
    };
    return result;
}

在 Java 12 之后,關(guān)于 Switch 表達(dá)式的寫法改進(jìn)為如下:

private static String getText(int number) {String result = switch (number) {case 1, 2 ->"one or two";
        case 3 ->"three";
        case 4, 5, 6 ->"four or five or six";
        default ->"unknown";
    };
    return result;
}
更多內(nèi)容:

更多內(nèi)容大家可以關(guān)注一下個(gè)人博客網(wǎng),https://blog.xueqimiao.com/,內(nèi)容更豐富喔。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章題目:五、Java12新特性概述-創(chuàng)新互聯(lián)
當(dāng)前URL:http://chinadenli.net/article4/dsgpoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)動(dòng)態(tài)網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)標(biāo)簽優(yōu)化App開發(fā)定制網(wǎng)站

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)