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

        共 2688字,需瀏覽 6分鐘

         ·

        2022-01-18 18:05


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


        1、Lambda表達式

        2、函數(shù)式編程

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

        4、方法引用

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

        6、引入Optional來避免空指針

        7、引入Streams相關的API

        8、引入新的Date/Time相關的API

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

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


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


        JDK9新特性(2017年9月)


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

        2、設置G1為JVM默認垃圾收集器

        3、支持http2.0和websocket的API


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


        JDK10新特性(2018年3月)


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

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

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


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


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


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

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

        3、對Stream、Optional、集合API進行增強


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


        JDK12新特性(2019年3月)


        1、Shenandoah GC,新增的GC算法

        2、switch 表達式語法擴展,可以有返回值

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


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


        JDK13新特性(2019年9月)


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

        2、switch表達式增加yield關鍵字用于返回結果,作用類似于return,如果沒有返回結果則使用break;

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

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


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


        JDK14新特性(2020年3月)


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

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

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


        JDK15新特性(2020年9月)


        1、隱藏類 hidden class;

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


        JDK16新特性(2021年3月)


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

        2、instanceof模式匹配

        3、record的引入


        JDK16相當于是將JDK14、JDK15的一些特性進行了正式引入


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


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

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


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


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



        往期推薦



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

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

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

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

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

        Kafka那些值得我們學習的優(yōu)秀設計



        瀏覽 91
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 国产精品麻豆传媒 | 小黄片视频免费观看 | 少妇菊爆视频在线播放 | 91丨人妻丨国产 | 脱了内裤舌头伸进去了 |