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