Java 11即將推出什麼功能,它與Java 9和10有何不同?

目前 Oracle 已經發布了 JDK 10,下個版本 JDK 11 也即將發佈。本文主要介紹 Java 11 的新功能。

根據Oracle新出臺的每6個月發佈一次Java SE的節奏,雖然還有幾個月才發佈,讓我們先看看Java 11 會有那些新的特性,以及如何適應它;即我們是應該升級到Java 9,10 還是應該等待Java 11。

讓我們來看看。

Java 11即將推出什麼功能,它與Java 9和10有何不同?

Java 11中有什麼新東西?

Java 11的發佈日期定於2018年9月發佈,並且該代碼庫目前已開放並進行錯誤修復,以及將要添加到即將推出的版本中。雖然列表不是最終的,但已經有4個計劃用於下一個版本的提案:

1. Lambda參數的本地變量語法(JEP 323)

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

我們也可以簡寫:

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

這擴展了Java 10 局部變量類型推斷,它引入了一種新的語法,可以減少與編寫Java相關的冗長度,同時保持對靜態類型安全性的承諾。

var list = new array List(); var stream = getStream();

這將取代現有的寫法,如下:

List list = new arrayList(); Stream stream = getStream();

2. Epsilon垃圾收集器(JEP 318)

該JEP的正式名稱是“無操作垃圾收集器”,其目的是開發處理內存分配的垃圾回收器,而不實施任何實際的回收機制。

3.動態類文件常量(JEP 309)

JEP希望擴展Java類文件格式以支持新的常量池形式CONSTANT_Dynamic。其目標是降低開發新形式的可實現類文件約束帶來的成本和干擾。

4.刪除Java EE和CORBA模塊(JEP 320)

從Java 9開始開始,Java EE和CORBA模塊(deprecated)就不推薦使用,這些模塊將從整個Java SE平臺和SDK中移除。

Java 11將包含更多功能

儘管這個功能列表還不是最終的,我們預計在接下來的幾個月中會添加更多的JEP,Java 11將會有一些額外的功能。Java 11的主要亮點之一是對平臺的長期支持。這意味著什麼,讓我們回到2017年9月,當時Oracle宣佈它正在轉向 Java SE產品的長期支持(LTS)模式。

就目前而言,Oracle 需要滿足兩個不同的需求。一方面,公司希望專注於創新,儘快發佈功能,而不是等待每個發行版的2到3年。另一方面,他們也想為他們的用戶提供穩定性,他們需要一種他們可以信賴的產品。

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

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

向更快的發佈週期邁進的過程是大型公司正在採用的工作流程,即希望以更快的速度進行創新,但需要確保其可靠性在此過程中不受影響。我們介紹了工程團隊如何通過修改其CI / CD流程,從編寫代碼和在代碼部署到生產之後監控應用程序來彌補兩者之間的差距。

“長期支持”是什麼意思?

Oracle的LTS支持主要關注兩點。第一個是Premier支持,它從Oracle的全面供貨日期開始為Oracle數據庫,Oracle融合中間件和Oracle應用程序提供五年的維護和軟件升級。

第二種產品稱為「持續支持」,包括維護,只要您使用Oracle軟件,即可訪問Oracle在線支持工具,升級權限,預先存在的修復程序以及技術支持專家的幫助。這些要素對企業公司具有重要意義,甚至可能對其中的一些至關重要。

如果你問為什麼Oracle決定3年的差距,那是因為它是Java版本之間的平均發佈時間(或者更準確地說,它曾經是平均發佈時間)。

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

更新:正如Azul Systems副CTO Simon Ritter的評論部分所述,「LTS更新僅適用於擁有Oracle商業支持合同的客戶。JDK 11的公開更新與JDK 9之後的所有其他發佈版本一樣,將在下個版本發佈六個月後停止。」

這在Nicolai Parlog博客上得到了進一步的驗證,他展示了Java即將發佈的版本的發佈地圖。正如你在下面的圖片中看到的,Java 10似乎是最後一個免費的Oracle JDK。正如Nicolai指出的那樣,用戶需要付費才能使用未來的JDK版本,或者依賴於OpenJDK:

Java 11即將推出什麼功能,它與Java 9和10有何不同?

最後的想法

Java 9的發佈標誌著Java平臺發展演變的開始。起初,我們獲得了Jigsaw項目,並看到了我們思考和構建大規模應用程序的革命。Java 10即將推出局部變量類型推斷並幫助為Java添加一些語法糖,Java 11隨附以上所有內容以及該平臺的長期支持。

這並不一定意味著你應該等待Java 11,但它確實意味著Java和Oracle正在改變他們的曲調。事實上,該公司正在投資於其每一個優點 - 創新和穩定 - 是一個令人興奮的新聞,毫無疑問,更多好消息正在以我們的方式出現。

參考

https://blog.takipi.com/the-one-thing-that-repeatedly-breaks-your-cicd-workflow

https://land.overops.com/automated-root-cause-analysis-ebook

https://medium.com/codefx-weekly/no-free-java-lts-version-b850192745fb

原文鏈接:https://blog.takipi.com/java-11-will-include-more-than-just-features/?platform=hootsuite


分享到:


相關文章: