Java 10釋出
\\\看新聞很累?看技術新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!
\
Oracle釋出了新版本的Java,即Java 10。這個版本距離Java 9的釋出剛剛過去了六個月,和上個版本一樣,它也是特性發布版本,其生命週期只有六個月。
\\隨著Java 10的釋出,Java 9隨即被廢止,以後不會再有Java 9的免費支援版本釋出。從3月20日開始,Oracle免費支援的Java版本是Java 8和Java 10。下一個長期支援的版本將會是Java 11,預計會在2018年九月份釋出。
\\最終的釋出版本與RC1候選版本幾乎沒有什麼差別,從InfoQ 2017年11月報導釋出內容之後,Java 10並沒有新增什麼重要的特性。
\\關於該版本語言級別的變更,可以通過版本的完整文件和釋出說明獲取。
\\對於開發人員來說,一個重要的變更就是新增了var
。這是對Java型別推斷功能的增強,該特性已被證明比它剛剛出現的時候更為重要。在最簡單的場景中,var
允許我們按照如下的方式編寫程式碼:
var foo = new ArrayList\u0026lt;String\u0026gt;();\\
它將推斷從值的型別轉移到了變數中。
\\在Java 10中,該特性的實現是通過將var
作為保留型別名而不是作為關鍵字來實現的。這意味著,使用var作為變數名、方法或包名並不會受到影響。
除了簡單的場景,它實際上還允許我們使用以前所不允許的程式設計結構。例如,javac
一直允許使用功能非常有限的型別推斷形式:
public class Test {\ public static void main(String[] args) {\ (new Object() {\ public void bar() {\ System.out.println(\"bar!\");\ }\ }).bar();\ }\}\\
在Java 7出現之前,它的功能邊界已經被Java社群所知曉。
\\這種形式的型別推斷所面臨的問題在於它沒有辦法實際應用,“具有bar方法的物件”存在於編譯器中,但是該型別無法通過變數型別的方式來表述,它並不是可表示的型別。
\\隨著Java 10的釋出,變數的型別不再需要明確指定,var
能夠避免明確表示型別,從而允許我們保留靜態的型別資訊。這意味著我們可以修改樣例程式碼,編寫成如下的樣子:
var o = new Object() {\ public void bar() {\ System.out.println(\"bar!\");\ }\};\\o.bar();\\
將var
作為“魔力型別”來使用,允許程式設計師以某種方式保留每次型別推斷的型別資訊,這不禁讓人聯想到Java泛型的約束。
關於var
如何實現非表示性型別的更高階用法,可以參考該文章。儘管該特性無法滿足每個批判者對Java型別系統的質疑,但是它的確代表了一種堅定(可能也是謹慎的)的進步。
檢視英文原文:Java 10 Released
相關文章
- Hasor 0.0.10 釋出,輕量化 Java 開發框架Java框架
- Java 16釋出可用Java
- java11釋出Java
- Java 22 正式釋出Java
- 微軟釋出Windows 10!微軟Windows
- GNOME 3.10釋出
- Scala 2.10 釋出
- PyQt 4.10.1 釋出QT
- 微軟釋出基於ARM晶片的Windows 10的Java OpenJDK微軟晶片WindowsJavaJDK
- 蘋果釋出會沒有MacBook? 最早10月釋出!蘋果Mac
- 官方正式釋出 Java 16Java
- java程式linux釋出流程JavaLinux
- Beetl 1.25 釋出,java模板引擎Java
- Java 8最終釋出日期敲定,即使有bug也要釋出Java
- Ubuntu 19.10 釋出Ubuntu
- Debian 10 "buster" 釋出
- Ubuntu 11.10 釋出!Ubuntu
- Oracle Java 14釋出! | Oracle Java平臺組OracleJava
- 使用Jitpack釋出開源Java庫Java
- Java爬蟲框架,WebMagic 0.4.0 釋出Java爬蟲框架Web
- Java編輯器jEdit 5.0釋出Java
- java專案如何加密及釋出Java加密
- Debian 10 “Buster”正式釋出
- Wine Staging 4.10 釋出
- SUSE 10.1 LiveDVD 釋出
- java10才剛釋出,Java 11又要來了?!一起看看有啥新特性Java
- jenkins自動釋出java程式碼JenkinsJava
- Java 11正式釋出,新特性解讀Java
- Solon v1.11.0 釋出,Hello JavaJava
- DTM Java SDK 2.1.4釋出,支援springcloudJavaSpringGCCloud
- Qt Creator 4.10 Beta版釋出QT
- Flutter 2.10正式版釋出Flutter
- 支援Windows的Flutter 2.10釋出WindowsFlutter
- HMS Core 6.10.0版本釋出公告
- 微軟釋出Windows 10 Windows Defender中心微軟Windows
- Linux Kernel 3.10 正式釋出Linux
- jQuery 1.10.0 和 jQuery 2.0.1 釋出jQuery
- oracle 10.2.0.5 patch for aix 今天釋出OracleAI