<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JDK8 到 JDK17 各個版本的重要特性一覽

          共 2688字,需瀏覽 6分鐘

           ·

          2022-01-18 18:05


          JDK8新特性(2014年初)(LTS版本)


          1、Lambda表達(dá)式

          2、函數(shù)式編程

          3、接口可以添加默認(rèn)方法和靜態(tài)方法,也就是定義不需要實(shí)現(xiàn)類實(shí)現(xiàn)的方法

          4、方法引用

          5、重復(fù)注解,同一個注解可以使用多次

          6、引入Optional來避免空指針

          7、引入Streams相關(guān)的API

          8、引入新的Date/Time相關(guān)的API

          9、新增jdeps命令行,來分析類、目錄、jar包的類依賴層級關(guān)系

          10、JVM使用MetaSpace代替了永久代(PermGen Space)


          重要特性:Lambda表達(dá)式、函數(shù)式接口、方法引用、Stream流式API、采用MetaSpace代替了永久代(PermGen Space)


          JDK9新特性(2017年9月)


          1、接口方法可以使用private來修飾

          2、設(shè)置G1為JVM默認(rèn)垃圾收集器

          3、支持http2.0和websocket的API


          重要特性:主要是API的優(yōu)化,如支持HTTP2的Client API、JVM采用G1為默認(rèn)垃圾收集器


          JDK10新特性(2018年3月)


          1、局部變量類型推斷,類似JS可以通過var來修飾局部變量,編譯之后會推斷出值的真實(shí)類型

          2、并行Full GC,來優(yōu)化G1的延遲

          3、允許在不執(zhí)行全局VM安全點(diǎn)的情況下執(zhí)行線程回調(diào),可以停止單個線程,而不需要停止所有線程或不停止線程


          重要特性:通過var關(guān)鍵字實(shí)現(xiàn)局部變量類型推斷,使Java語言變成弱類型語言、JVM的G1垃圾回收由單線程改成多線程并行處理,降低G1的停頓時間


          JDK11新特性(2018年9月)(LTS版本)


          1、ZGC,ZGC可以看做是G1之上更細(xì)粒度的內(nèi)存管理策略。由于內(nèi)存的不斷分配回收會產(chǎn)生大量的內(nèi)存碎片空間,因此需要整理策略防止內(nèi)存空間碎片化,在整理期間需要將對于內(nèi)存引用的線程邏輯暫停,這個過程被稱為"Stop the world"。只有當(dāng)整理完成后,線程邏輯才可以繼續(xù)運(yùn)行。(并行回收)

          2、Flight Recorder(飛行記錄器),基于OS、JVM和JDK的事件產(chǎn)生的數(shù)據(jù)收集框架

          3、對Stream、Optional、集合API進(jìn)行增強(qiáng)


          重要特性:對于JDK9和JDK10的完善,主要是對于Stream、集合等API的增強(qiáng)、新增ZGC垃圾收集器


          JDK12新特性(2019年3月)


          1、Shenandoah GC,新增的GC算法

          2、switch 表達(dá)式語法擴(kuò)展,可以有返回值

          3、G1收集器的優(yōu)化,將GC的垃圾分為強(qiáng)制部分和可選部分,強(qiáng)制部分會被回收,可選部分可能不會被回收,提高GC的效率


          重要特性:switch表達(dá)式語法擴(kuò)展、G1收集器優(yōu)化、新增Shenandoah GC垃圾回收算法


          JDK13新特性(2019年9月)


          1、Socket的底層實(shí)現(xiàn)優(yōu)化,引入了NIO;

          2、switch表達(dá)式增加yield關(guān)鍵字用于返回結(jié)果,作用類似于return,如果沒有返回結(jié)果則使用break;

          3、ZGC優(yōu)化,將標(biāo)記長時間空閑的堆內(nèi)存空間返還給操作系統(tǒng),保證堆大小不會小于配置的最小堆內(nèi)存大小,如果堆最大和最小內(nèi)存大小設(shè)置一樣,則不會釋放內(nèi)存還給操作系統(tǒng);

          4、引入了文本塊,可以使用"""三個雙引號表示文本塊,文本塊內(nèi)部就不需要使用換行的轉(zhuǎn)義字符;


          重要特性:ZGC優(yōu)化,釋放內(nèi)存還給操作系統(tǒng)、socket底層實(shí)現(xiàn)引入NIO


          JDK14新特性(2020年3月)


          1、instanceof類型匹配語法簡化,可以直接給對象賦值,如if(obj instanceof String str),如果obj是字符串類型則直接賦值給了str變量;

          2、引入record類,類似于枚舉類型,可以向Lombok一樣自動生成構(gòu)造器、equals、getter等方法;

          3、NullPointerException打印優(yōu)化,打印具體哪個方法拋的空指針異常,避免同一行代碼多個函數(shù)調(diào)用時無法判斷具體是哪個函數(shù)拋異常的困擾,方便異常排查;


          JDK15新特性(2020年9月)


          1、隱藏類 hidden class;

          2、密封類 sealed class,通過sealed關(guān)鍵字修飾抽象類限定只允許指定的子類才可以實(shí)現(xiàn)或繼承抽象類,避免抽象類被濫用;


          JDK16新特性(2021年3月)


          1、ZGC性能優(yōu)化

          2、instanceof模式匹配

          3、record的引入


          JDK16相當(dāng)于是將JDK14、JDK15的一些特性進(jìn)行了正式引入


          JDK17新特性(2021年9月)(LTS版本)


          1、正式引入密封類sealed class,限制抽象類的實(shí)現(xiàn);

          2、統(tǒng)一日志異步刷新,先將日志寫入緩存,然后再異步刷新;


          雖然JDK17也是一個LTS版本,但是并沒有像JDK8和JDK11一樣引入比較突出的特性,主要是對前幾個版本的整合和完善。


          來源:cnblogs.com/jackion5/p/10772017.html



          往期推薦



          使用MySQL的JSON數(shù)據(jù)類型,事半功倍!

          不要再封裝各種 Util 工具類了,這款開源項(xiàng)目,真的很好用!

          Eclipse 跌落“神壇”,這款 IDE 后來居上!

          推薦一個 Spring Boot 快速開發(fā)利器

          更快 Maven 來襲,性能大幅提升!

          Kafka那些值得我們學(xué)習(xí)的優(yōu)秀設(shè)計(jì)



          瀏覽 91
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产www | 亚洲一在线 | 天天日天天干天天爽 | 伊人无码在线视频 | 极品少妇久久久 |