Java JDK 11:如今可使用全部新功能

刪除了CORBA,Java EE和JavaFX支持,但添加了十幾個主要新功能

 

目錄javascript

  • 哪裏能夠下載JDK 11
  • Java 11 JDK中的新功能
  • 從Java JDK 11中刪除了什麼

Java Development Kit(JDK)11現已廣泛可用,可供生產使用,提升了工做效率,並提供了實現HTTP / 2的HTTP客戶端API。html

Java Standard Edition(SE)版本11有16個主要功能更改。Java 11還經過刪除CORBA和Java EE  (最近改名爲Jakarta EE)模塊以及刪除JavaFX而失去了一些功能  ,JavaFX如今可做爲獨立技術使用java

在Java 11中,Oracle已將主線存儲庫jdk / jdk指定到jdk / jdk11穩定存儲庫。推送到jdk / jdk或jdk / client的更改將被標記爲JDK 12。穩定存儲庫能夠接受選定的錯誤修復,若是得到批准,則能夠作爲JDK發佈過程中的後期加強功能。算法

Oracle標準Java實施的最新版本是長期支持(LTS)版本,該版本將得到Oracle的商業支持至少八年。錯誤修復和安全更新將在2026年以前提供。新的LTS版本每三年發佈一次,JDK 17將於2021年發佈,預計將成爲下一個LTS版本。臨時版本將每六個月發佈一次。編程

哪裏能夠下載JDK 11

您能夠從Oracle Technology Network 下載JDK 11緩存

Java 11 JDK中的新功能

JDK 11有16個新功能:安全

  • 經過lang.Math在Aarch64處理器上實現sin,cos和log函數的新內在函數,改進Aarch64內在函數。該提案強調專用的CPU體系結構特定的代碼模式,可提升應用程序和基準的性能。
  • 基於嵌套的訪問控制,引入了嵌套,這是一種與Java語言中嵌套類型概念一致的訪問控制上下文。嵌套容許邏輯上屬於同一代碼的實體類,但編譯爲不一樣的類文件,以訪問彼此的私有成員,而無需編譯器插入可訪問性擴展橋接方法。
  • 傳輸層安全性(TLS)1.3,其中TLS協議這種大的修改將適用於JDK 11,從而提供顯著的安全性和性能優點。可是,目標不是支持TLS 1.3的每一個功能。爲了最大限度地下降不兼容的風險,TLS 1.3默認會實現向後兼容模式。應用程序能夠根據須要關閉或打開此模式。
  • Nashorn JavaScript引擎與JJS工具的棄用,旨在未來刪除它們。鑑於ECMAScript語言構建和API的快速調整和修改,Oracle發現Nashorn難以維護。
  • HTTP客戶端(標準),它標準化了JDK 9中引入,並在JDK 10中更新和孵化的HTTP API客戶端。API提供非阻塞請求和響應語義CompleteableFutures,能夠連接到觸發器依賴操做。在JDK 9和10中孵化以後,如今異步的實現幾乎已經徹底重寫了。RX Flow概念已經被推入實現階段,消除了支持HTTP / 2所需的許多自定義概念。如今能夠更輕鬆地跟蹤數據流,從用戶級請求發佈者和響應發佈者到底層套接字。這下降了複雜性並最大化了HTTP / 1和HTTP / 2之間重用的可能性。
  • 被稱爲「無操做」收集器的Epsilon垃圾收集器,將處理內存分配,而不實現任何實際的內存回收機制。Epsilon的用例包括性能測試,內存壓力和虛擬機接口。它也能夠用於短時間工做。
  • lambda參數的局部變量語法,應該將隱式類型表達式中形式參數聲明的語法,與局部變量聲明的語法對齊。這將容許var 在聲明隱式類型lambda表達式的形式參數時使用。
  • 將擴展Java類文件格式以支持新的常量池形式CONSTANT_Dynamic。目標是下降成本和消除新開發形式中可物化類文件約束。
  • 與現有的橢圓曲線Diffie-Hellman方案相比,Curve25519和Curve448密碼學的關鍵協議應該更加有效和安全。根據IETF的說法,兩條橢圓曲線Curve25510和Curve448能夠實現恆定時間實現和無異常的標量乘法,這種乘法更能抵抗一系列的旁道攻擊,包括定時和緩存攻擊。該提案的目標包括API和密鑰協商方案的實現,以及獨立於平臺的全Java實現的開發。可是,做爲提案的一部分,模塊化算法實現的複雜性和微妙性存在風險。
  • Flight Recorder將提供一個低開銷的數據收集框架,用於對Java應用程序和HotSpot JVM進行故障排除。Flight Recorder已成爲Oracle商業JDK的一項功能,但其源代碼將移至開放式存儲庫以使該功能廣泛可用。Iclouded將是用於生成和使用數據做爲事件的API,提供緩衝機制和二進制數據格式以及啓用事件的配置和過濾。該提案還要求爲OS,HotSpot和JDK庫提供事件。
  • 升級平臺API以支持Unicode版本10.0,從而使Java保持最新。預計將在如下類別中提供支持:
    • CharacterStringlang包中
    • NumericShaperawt.font包中
    • BidiBreakIteratorNormalizertext
  • 實施ChaCha20和Poly1305加密算法。ChaCha2020是一種相對較新的流密碼,能夠取代舊的,不安全的R4流密碼。ChaCha20將與Poly1305驗證器配對。將提供ChaCha20和ChaCha20-Poly1305密碼實現,使用crypto.CipherSpiAPI 在SunJCE(Java密碼術擴展)提供程序中實現算法。
  • 加強Java啓動程序,以運行只有單個Java源代碼文件的程序,所以這些程序能夠直接從源代碼運行。在學習Java的早期階段,開發人員編寫小的實用程序時,單文件程序很常見。此外,單個源文件可能會編譯爲多個類文件,這會增長打包開銷。在這些狀況下,必須在運行以前編譯程序,只是傳統的沒必要要的步驟。
  • 低開銷堆分析,提供了一種能夠經過JVM工具接口訪問Java堆分配的方法。這項工做的目標是以低開銷的方式獲取有關這些分配的信息,能夠經過編程接口訪問,並能夠對全部分配進行採樣。其目標也包含,實施獨立性和提供關於實時和死堆的數據。糟糕的堆管理可能致使堆耗盡和垃圾收集顛簸。解決此問題的大多數工具都缺乏特定分配的調用站點,這些信息對於調試內存問題相當重要。
  • 在util.jar中棄用Pack200和Unpack200工具以及Pack200 API。Pack200是.jar文件的壓縮方案,旨在下降應用程序打包,傳輸和交付的磁盤和帶寬要求。項目負責人表示,高維護成本和低使用率證實其保留是不合理的。
  • Z垃圾收集器(ZGC) 實驗功能,低延遲垃圾收集器,以處理從相對較小到很是大的堆的堆,其大小爲數TB。經過使用ZGC,暫停時間不該超過10毫秒,與使用G1收集器相比,應用程序吞吐量減小不該超過15%。ZGC還爲將來的功能和優化奠基了基礎。Linux / x64將是第一個得到ZGC支持的平臺。

從Java JDK 11中刪除了什麼

Java EE EE和CORBA模塊在Java SE 9中已棄用,其目的是在之後的發行版中刪除它們 - 即JDK 11。oracle

2006年12月發佈的Java SE 6包含了一個完整的Web服務堆棧,以方便開發人員 - 包括爲Java EE平臺構建的四種技術:JAX-WS(基於XML的Web服務的Java API,JAXB(Java體系結構) Java綁定),JAF(JavaBeans Activation Framework)和Java的通用註釋。隨着時間的推移,Java EE版本不斷髮展,致使Java SE出現困難,例如包括與Java SE無關的技術以及跨兩個Java的更難維護經過第三方站點提供的獨立版Java EE技術,Oracle表示再也不須要在Java SE或JDK中使用它們。java-ee

儘管如此,若是某些應用程序依賴於JDK for Java EE API和工具的開箱即用支持,它們將沒法編譯或運行。將JDK 6,7或8遷移到更高版本時會出現二進制和源不兼容問題。Oracle表示,受這些風險影響的開發人員能夠部署替代版本的Java EE技術。框架

CORBA能夠追溯到20世紀90年代,Oracle稱今天對使用CORBA開發現代Java應用程序沒有太大興趣。維護CORBA支持的成本超過其剩餘的好處。

可是,若是CORBA實現僅包含一部分CORBA API而且指望JDK提供其他部分,則刪除CORBA會致使CORBA實現沒法運行。沒有第三方CORBA版本,而且不肯定第三方是否能夠接管CORBA API維護。

JavaFX正在被刪除,所以它與Java JDK的兩年更新計劃無關。

Oracle表示,將JavaFX做爲獨立的模塊將使其更容易採用併爲新貢獻者掃清障礙。該公司補充說,隨着標準Java和JDK實施更快的發佈計劃JavaFX須要按照Oracle和其餘OpenJFX社區的貢獻來推進本身的步伐。

備受期待的兩大功能 ZGCJavaFx

相關文章
相關標籤/搜索