最近,新版本的JDK又雙叒叕發佈了,目前已經JDK 14 了,從2017年8月份開始,JDK的更新頻率變成了每半年一次,將固定在每年的3月份和9月份發佈新版本。
按照這個頻率,過不了多久,JDK 20 就要推出了…
最早的JDK發佈於1996年,相信比很多讀者的年齡都要小,其發佈頻次如下:
Java 8 與 Java 11 為當前提供支持的LTS(長期支持)版本;
2018年9月,隨著 Java 11 的發佈,Java 10 自當日起不再被支持。
Oracle 於 2019 年 1 月前為商業用途中的 Java 8 長期支持,而針對非商用的更新將繼續提供,直至 2020 年 12 月;
此外,AdoptOpenJDK 也為 Java 8 提供免費更新。
針對 Java 11 的長期支持將不再由 Oracle 提供,而是改由 OpenJDK 社區的 AdoptOpenJDK 提供。
各版本重大更新內容
從Java第一個版本發佈到現在,已經有24年了,24年中共發佈了14個版本,那麼,。讓我們細數一下各個版本中增加的主要特性有哪些。
JDK 1.0
第一個版本於1996年1月23日發佈,叫做為Oak。而真正第一個穩定的版本JDK 1.0.2,被稱作Java 1。
JDK 1.1
內部類JDBCJavaBeansJ2SE 1.2
Java集合框架Swing圖像化APIJIT編譯器J2SE 1.3
HotSpot JVMJNDIJPDA用於實現動態代理的類J2SE 1.4
assert 關鍵字異常鏈NIOJ2SE 5.0
泛型元數據自動封箱、自動拆箱枚舉可變參數函數強化for each循環Swingjava.util.concurrent包Java SE 6
支持JDBC 4.0Java SE 7
在switch中使用字符串類型try-with-resources新的invokedynamic字節碼指令允許在數值字面值中加入下劃線Java SE 8
Lambda表達式Nashorn移除了虛擬機內存管理中的永久代新的日期和時間 APIJava SE 9
Jigsaw項目中將JDK模塊化jshelljlinkJava SE 10
局部變量類型推斷適用於G1的多線程完全垃圾回收Java SE 11
ZGCEpsilonJava SE 12
ShenandoahSwitch 表達式(預覽)Java SE 13
Text Blocks(預覽階段)動態 CDS 歸檔Java SE 14
RecordsSwitch 表達式友好的空指針異常打包工具新版任你發,我用Java 8
從Java 8推出至今,已經很快的發展到了Java 14了,很多人做過調查,最終結果顯示都是Java 8的使用者最多。
隨便放兩個統計結果大家感受下:
從這些統計中,可以看到使用的最多的還是Java 8,其次就是Java 11。
之所以大多數人選擇Java 8和Java 11 ,是因為這兩個版本都是目前官方宣佈長期支持的版本。
目前的Java 8和 Java 11 在2023年之前都會得到官方的持續支持。而剛剛在3月份發佈的JDK 14,在今年的九月份之後就不再維護更新了。其他在JDK 8 之後發佈的非LTS的版本的更新維護時間就是本年左右。
在JDK的官網上可以看到JDK 8的更新記錄,最近一次是2020年1月14日。
另外,在兩個長期支持的版本 JDK 8 和 JDK 11中,相比之下肯定是JDK 11 的新特性更多一些,但是並沒有真的非升不可的新特性。
一方面在JDK 8 是在JDK 7 推出三年後才推出,其中包含了很多重要的語言特性和技術升級,比如函數式編程,還有一些小改動如HashMap引入紅黑樹等。
所以JDK 8使用者比較多,另外一方面,JDK 的升級是一項耗時耗力的大工程,如果沒有足夠多的好處,很多公司和組織是不願意大範圍升級的。
所以,可以預見,在接下來的很長一段時間中,JDK 8 將仍然是主流版本。不過值得一提的是,本次發佈的JDK 14 確實增加了幾個可圈可點的新特性。
最後,新版本層出不窮,到底要不要升級?
作者認為,如果生產環境中使用的是Java 8,目前完全沒必要升級,如果要升級的話,首選Java 11;但是,作為開發者,倒是自己可以本機安裝新版的JDK,學習並瞭解下新特性。
SO,新版任你發,我用Java 8。
所以你正在使用的是哪個版本的JDK呢?,大家留言探討下哦~~~~
原文鏈接:https://mp.weixin.qq.com/s/NEfqPXrcq6O1p7RLf9LWCw