(二十二)Java11 新特性概述

本文目錄

1、關於JDK11

2、JDK11的17項新特性

3、產品支持路線圖

4、JavaFX & Web 部署技術

Oracle Java SE 常見問題

問題一:2019年1月以後Java還免費嗎?

問題二:Java 8 的 “ End of Public Updates ” 時間表是什麼?

問題三: 在2019年4月前發佈並在 BCL 下下載的 java8更新能否在2019年1月後繼續使用?

總結


1、關於JDK11

JDK11是由Java Community Process中的JSR-384指定的 Java SE 平臺版本 11 的開源引用實現。

JDK11於2018年9月25日發佈。在 GPL 下可用於生產的二進制文件可以從 Oracle 官方獲得;此版本的特性和時間表是通過 JEP 流程提出並跟蹤的,JEP 2.0提案對其進行了修訂。該版本使用 JDK Release Process(JEP 3)生成的。

 

2、JDK11的17項新特性

光陰似箭、日月如梭,在過去的幾個月中,Oracle 宣佈了 Java 平臺的改進,以確保其繼續向前發展,爲用戶提供一個充滿活力的未來。這些進展包括:

  • 提高交付的速度和可預測性:自Java9發佈以來,Java平臺已經切換到6個月的發佈週期,允許開發人員更快地訪問持續增強的功能。現在發行版在每年的3月和9月發佈,這意味着不再試圖每隔幾年就一次性的數百個變更——相反,變更是以更有節制和可預測的速度發佈的。
  • 使Java更加開放:爲了提高開發人員的工作效率,Oracle採用了以前只能通過付費許可才能獲得的商業特性,並將其開源。這樣做可以在Oracle JDK和Oracle OpenJDK發行版之間創造更大的一致性和互換性。OpenJDK中以前的商業特性包括:Application Class Data Sharing、Project ZGC、 Java Flight Recorder (JFR)和 Java Mission Control (JMC)。最近,Oracle又宣佈計劃將JMC技術作爲單獨的下載提供給OpenJDK和Oracle JDK用戶。
  • 關於Java SE訂閱:Oracle 在今年夏天宣佈了Java SE訂閱,這是一個全新的模型,它涵蓋了所有Java SE許可和支持,以進一步支持全球數百萬在生產中運行Java的企業。訂閱是對長期免費提供的Oracle OpenJDK的補充,它使開發人員和組織不需要商業支持。

Oracle 提供的 JDK 不僅包括 Oracle OpenJDK 版本中的開源 GNU 通用公共許可協議版本 v2,還包括 Classpath Exception (GPLv2 + CPE) ,還包括那些使用 Oracle JDK 作爲 Oracle 產品或服務的一部分或者不希望使用開源軟件的用戶的商業許可。 這些許可協議取代了歷史上的“ BCL ”許可協議,該協議主要包含了免費和付費的商業條款。這樣以來,將意味着用戶可以得到符合自己需求的 Java 11:

  1. Java 11是一個長期支持(LTS)版本。這意味着那些對平臺採用持保守態度並需要長期支持的用戶可以通過Java SE訂閱提供許可Oracle JDK二進制文件。它允許用戶在至少8年內獲得Java 11 LTS發行版的更新。訂閱可以直接從Oracle訪問經過測試和認證的Java SE性能方面、穩定性方面和安全性方面的更新。它還包括對 My Oracle Support (MOS)24x7的訪問、對27種語言的支持、Java SE 8桌面管理、監控和部署特性等。
  2. 相反,喜歡快速訪問新增強功能的用戶可以繼續使用Oracle OpenJDK發行版。與Java 9和Java 10相同,這個版本的用戶將得到徹底的測試,由 Oracle 提供開源的 OpenJDK 來構建。
     

Java 11提供了17個增強功能,其中最顯著的包括:

  • JEP 321 - HTTP Client (Standard):該 JEP 通過JEP 110標準化了JDK 9中引入並在 JDK 10中更新的已孵化的 HTTP 客戶端 API。
  • JEP 332 - Transport Layer Security (TLS) 1.3:TLS 1.3是對TLS協議的重大改進,與以往的版本相比,TLS 1.3在安全性和性能得到了顯著的改進。
  • JEP 328 - Java Flight Recorder (JFR):JFR 提供了一個高性能的飛行記錄引擎和低開銷的數據收集框架,用於解決Java應用程序的關鍵任務的故障。
  • JEP 333 - Project ZGC:ZGC 是一個實驗性的低延遲垃圾收集器(GC),它可以處理大小從相對較小(幾百兆字節)到非常大(多字節)的堆。
  • JEP 330 – Launch Single-File Source-Code Programs:這種增強簡化了“ on-ramp ”或新的 Java 用戶,增強了 Java launcher,使其可以運行作爲 Java 源代碼單個文件提供的程序,包括腳本和/或相關技術中的使用。

JDK隨時間變化的總體速度在多年來基本上保持不變,但是在新的節奏下,更改速度已經顯著增加。不是每隔幾年就在一個龐大的發行版中提供成千上萬個補丁和大約100個JEPS,而是在更小的發行版中以更易於管理、更可預測的進度提供更改。這些更改的範圍從大的特性到小的增強、日常維護、BUG修復再到文檔改進等。每個這樣的更改都會在單個提交中表示。

在 JDK11 中標記爲已修復的2468個 JIRA 問題中,1963個 JIRA 問題是由 Oracle 工作人員完成的,其中 505 個由個人和其他組織的開發人員完成的。 仔細研究這些問題並整理委託人提供的組織數據,會得到下面的圖表,主要展示了 JDK11 修復的組織:

如上圖,在JDK 11的開發過程中,Oracle 的開發人員解決了80% 的 JIRA 問題,而其它組織的開發人員解決了20% 的 JIRA 問題。 其中排名第二的五大貢獻組織機構包括:SAP (7%)、 Red Hat (5%)、 Google (3%)、 BellSoft (1%)和 IBM (1%) ,這五大貢獻機構共同解決了 17% 的 JIRA 問題,獨立開發人員對JDK 11修復的貢獻值爲2% 。

其餘 1% 的 JIRA 問題修復是由:阿里巴巴、亞馬遜(Amazon)、ARM、Azul、英特爾(Intel)、JetBrains、Linaro和Qualcomm Datacenter Technologies 等衆多組織機構的開發人員共同完成的。

3、產品支持路線圖

Oracle Java SE支持路線圖(這個較之前的時間表有所變化,該表更新與2018年11月):

對於Java SE 8之後的產品版本,Oracle將每三年指定一個版本作爲長期支持(Long-Term-Support,LTS)版本。Java SE 11 (18.9 LTS)是一個LTS版本。出於Oracle Premier Support的目的,非LTS版本被認爲是對最新LTS版本的實現增強的累積集。一旦一個新的特性發布可用,任何以前的非LTS發佈都將被認爲是可替代的。例如,Java SE 9是一個非 LTS 版本,並立即被Java SE 10(也是非LTS)所取代,而Java SE 10又立即被Java SE 11所取代。然而,Java SE 11是一個LTS版本,因此即使在 Java SE 12 發佈之後,Oracle 客戶也會收到 Oracle 官方獲得支持和定期更新的Java版本。

4、JavaFX & Web 部署技術

與JRE綁定的Web部署技術(由Java插件和Java Web Start組成)具有更短的支持生命週期(只有5年的支持週期)。而在Java SE 9和Java SE 10中,部署堆棧被標記爲不推薦的,並被標記爲將要刪除的。Oracle Java SE 11及其後續版本已經不包含部署堆棧。由於Java SE 8將是Java SE 8上的Java Web Start擴展支持的部署堆棧的結束版本,所以Java SE 8d 擴展支持預計在2025年3月結束。而對 Java 插件(JavaApplet)的支持將持續到2019年3月。

Java SE 8是推薦的,也是唯一支持部署堆棧的版本。Java SE 8部署堆棧可用於在Windows平臺上運行Java SE 6或Java SE 7應用程序。Java SE 8之外,其它 Java 部署技術將不再被支持。

JavaFX已經開源並重新設計爲一個獨立的庫,而不是包含在JDK中。從Java SE 11 (18.9 LTS)開始,JavaFX不再包含在Oracle JDK中。在Java SE 8上對JavaFX的支持將持續到Premier Support支持期(直到2022年3月)。

Oracle Java SE 常見問題

今年1月,也就是2019年1月,Oracle 官方發佈了幾個關注度較高的問題,並予以詳細的回答,具體內容如下:

問題一:2019年1月以後Java還免費嗎?

答案是絕對的。與過去20多年的情況一樣,Oracle一直保持Java的免費和開放,並免費爲當前版本提供穩定性方面、性能方面和安全性方面的持續更新。Oracle還將繼續提供免費的關鍵補丁更新(需要提前一年預定),必要時提供額外的更新,並且在基於新版本更新的節奏下每年提供兩個特性更新(還包括關鍵補丁更新)。 在 OpenJDK 開源社區中完成了所有這些開發工作,使得我們的貢獻可以被任何人移植、分析和使用,作爲開放源碼的Java,可以從 Oracle 官網免費下載 Java 的最新更新版本。

問題二:Java 8 的 “ End of Public Updates ” 時間表是什麼?

2019年1月15日計劃對Java 8進行關鍵補丁更新(8u201和相關的8u202補丁集更新),這是BCL許可下的最後一次更新,BCL許可一般免費用於桌面和服務器,多年來一直是Oracle JDK許可。接下來,於2019年4月16日發佈的Java 8更新(8u211和相關的8u212補丁集更新)將根據新的許可提供,該許可將免費用於個人桌面使用,並可用於開發、測試、原型設計和演示的目的。

最近發佈的 Java 版本仍然是免費的,並且遵循來自jdk.java.net的開源許可下,或者免費使用於OTN許可的開發、測試、原型設計和演示。2019年4月16日之後,對於那些希望繼續使用發佈的用於商業或生產目的的 java8 更新的用戶,可以使用 Java SE 訂閱。

問題三: 在2019年4月前發佈並在 BCL 下下載的 java8更新能否在2019年1月後繼續使用?

當然是可以的。可以根據提供的給定的許可條款繼續使用任何版本的 Java。 Java 8更新的新許可只適用於2019年1月之後根據新許可發佈的更新,從2019年4月16日計劃的季度更新開始。

總結

在較早的 Java 公共更新中,可以一直追溯到 Java 1.1,可以在 Java 檔案中找到。 提供這些舊版本是爲了幫助開發人員在舊系統中調試問題。

而在沒有更新最新的安全修補程序情況下,博主不建議在公共網絡種使用舊的或更老的版本,因爲在沒有更新安全補丁的情況下使用,是不安全的,需要承擔風險之大。如果在政府級別的項目,對其穩定性要求比較高的,可以使用,因爲一般政府的項目運行都是內網與外網隔離的,所以,不會存在安全性的問題,除非人爲因素造成。

參考 & 推薦閱讀:

《 Oracle Java SE 官網 》

《 Oracle生命週期支持策略 》

 

本文轉載自:

原文鏈接:https://blog.csdn.net/Hello_World_QWP/article/details/88788021

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章