1. 程式人生 > >40天后Java 11將推出的功能有哪些,它們與Java 9和10的不同之處是什麼?

40天后Java 11將推出的功能有哪些,它們與Java 9和10的不同之處是什麼?

Java 11中即將推出的功能有哪些,它們與Java 9和10的不同之處是什麼?
40天后Java 11將推出的功能有哪些,它們與Java 9和10的不同之處是什麼?
Java 10可能是塊中的新手,但現在已經是時候談論Java 11. Oracle向更快的釋出週期邁進意味著更多的功能和能力正在以前所未有的速度發展。

雖然我們還有6個月的時間才會釋出Java 11,但我們已經可以看到我們的方式,看看我們如何適應。我們還可以瞭解是否應該升級到Java 9,10,或者我們是否應該等待Java 11。

讓我們來看看。

Java 11中有什麼新東西?
Java 11的釋出日期定於2018年9月,並且該儲存庫目前已開放以進行錯誤修復,以及更多JDK增強建議(JEP)的提議將新增到即將釋出的版本中。雖然該列表不是最終的,但已經有4個提案計劃用於下一個版本:

  1. Lambda引數的本地變數語法(JEP 323)
    在宣告隱式型別lambda表示式的形式引數時,此JEP將允許使用var。這裡的目標是將區域性變數宣告的語法與隱式型別的lambda表示式中的形式引數宣告的語法對齊。這樣,而不是寫這個:

(x,y) – > x.process(y)

我們可以寫:

(var x,var y) – > x.process(y)

這擴充套件了Java 10 Local Variable Type Inference ,它引入了一種新的語法,可以減少與編寫Java相關的冗長,同時保持對靜態型別安全的承諾。

換句話說,您將能夠宣告變數而無需指定關聯的型別。與上面顯示的示例類似,Java 10將提供以下簡單的宣告:

var list = new ArrayList <String>();

var stream = getStream();

這將取代現有的,如下所示:

List <String> list = new ArrayList <String>();

Stream <String> stream = getStream();

  1. Epsilon:一個任意低開銷的垃圾收集器(JEP 318)
    這個JEP的官方名稱是“No-Op垃圾收集器”,其目的是開發一個處理記憶體分配的垃圾收集器,而不實現任何實際的記憶體回收機制。

3.動態類檔案常量(JEP 309)
此JEP希望擴充套件Java類檔案格式以支援新的常量池形式CONSTANT_Dynamic。這裡的目標是通過建立一個可以使用使用者提供的行為進行引數化的新的常量池形式來降低建立新形式的可實現類檔案常量的成本和中斷。

4.刪除Java EE和CORBA模組(JEP 320)
在Java SE 9中Java EE和CORBA模組的折舊之後,這些模組將從整個Java SE平臺和SDK中刪除。這更像是一個清理過程,跟進了Java 9中開始的過程。

Java 11將包含的不僅僅是功能
雖然這個功能列表仍然不是最終的,我們期望在接下來的幾個月中新增更多的JEP,但Java 11會有一些額外的東西。Java 11將帶來的主要亮點之一是該平臺的長期支援。為了理解它的含義,讓我們回到2017年9月,當時 甲骨文宣佈它將轉向 他們的Java SE產品 的長期支援(LTS)模型 。

到目前為止,Oracle已嘗試將同一版本用於兩種不同的需求。一方面,公司希望專注於創新,儘快釋出功能,而不是每次釋出都等待2 – 3年。另一方面,他們還希望為需要他們可以信賴的產品的使用者提供穩定性。

與其他領先公司類似,甲骨文希望快速發展。轉向更快的釋出週期將使公司能夠進行創新,併為團隊和公司提供更快的移動能力。

但是,快速釋出版本的責任是為使用者保持平臺可靠性。甲骨文表示,該公司很難為即將推出的所有版本提供LTS。這就是為什麼公司決定每3年提供一次LTS(或每6個版本提供一次)。

向更快的釋出週期邁進是大型公司正在採用的工作流程,希望以更快的速度進行創新,但需要確保在此過程中不會損害其可靠性。我們已經介紹了工程團隊如何通過改進他們的CI / CD流程,編寫程式碼以及在將程式碼部署到生產後監控應用程式來彌合兩者之間的差距。
“長期支援”是什麼意思?
Oracle的LTS支援主要關注兩個要點。第一個是Premier支援,它從一般可用日期起為您的Oracle資料庫,Oracle融合中介軟體和Oracle應用程式提供維護和軟體升級五年。

第二個產品稱為“持續支援”,其中包括使用Oracle軟體時的維護,訪問Oracle線上支援工具,升級許可權,預先存在的修復以及技術支援專家的幫助。這些要素對企業公司至關重要,甚至對其中一些公司至關重要。

如果您問為什麼Oracle決定在3年的差距,那是因為它是Java版本之間的平均釋出時間(或更確切地說,它曾經是平均釋出時間)。

事實上,Java 11將提供LTS,將提供此支援的下一個版本將在2021年9月釋出,目前代號為21.9。如果您仍在使用舊版本的Java,請不要擔心,因為Oracle聲稱對Java 6,7和8的支援將繼續用於當前的計劃。

更新: 如Azul Systems副首席技術官 Simon Ritter 在評論部分所述,“LTS更新僅適用於擁有Oracle商業支援合同的客戶。JDK 11的公開更新與JDK 9以後的所有其他版本的更新將在下一個版本釋出六個月後停止。“

Java 10似乎將是最後一個免費的Oracle JDK。正如Nicolai指出的那樣,使用者要麼付費才能使用未來的JDK版本,要麼依賴OpenJDK:
40天后Java 11將推出的功能有哪些,它們與Java 9和10的不同之處是什麼?
最後的想法
Java 9的釋出標誌著Java平臺演變的開始。起初,我們得到了Jigsaw專案,看到 了我們思考和構建 大規模應用程式 的方式的革命 。Java 10即將引入本地變數型別推斷並幫助向Java新增一些語法糖,Java 11帶有上述所有功能,以及對平臺的長期支援。

這並不一定意味著您應該等待Java 11,但這確實意味著Java和Oracle正在改變他們的調整。公司正在投資其每一個優勢 – 創新和穩定 – 這一事實是令人敬畏的新聞,我們毫無疑問會有更多好訊息傳來。