最近旷坦,新版本的JDK又雙叒叕發(fā)布了,目前已經(jīng)JDK 14 了佑稠,從2017年8月份開(kāi)始秒梅,JDK的更新頻率變成了每半年一次,將固定在每年的3月份和9月份發(fā)布新版本舌胶。
按照這個(gè)頻率捆蜀,過(guò)不了多久,JDK 20 就要推出了...
最早的JDK發(fā)布于1996年,相信比很多讀者的年齡都要小辆它,其發(fā)布頻次如下:
<img src="http://www.hollischuang.com/wp-content/uploads/2020/03/Jietu20200322-201236.jpg" />
Java 8 與 Java 11 為當(dāng)前提供支持的LTS(長(zhǎng)期支持)版本誊薄;
2018年9月,隨著 Java 11 的發(fā)布娩井,Java 10 自當(dāng)日起不再被支持暇屋。
Oracle 于 2019 年 1 月前為商業(yè)用途中的 Java 8 長(zhǎng)期支持,而針對(duì)非商用的更新將繼續(xù)提供洞辣,直至 2020 年 12 月咐刨;
此外,AdoptOpenJDK 也為 Java 8 提供免費(fèi)更新扬霜。
針對(duì) Java 11 的長(zhǎng)期支持將不再由 Oracle 提供定鸟,而是改由 OpenJDK 社區(qū)的 AdoptOpenJDK 提供。
各版本重大更新內(nèi)容
從Java第一個(gè)版本發(fā)布到現(xiàn)在著瓶,已經(jīng)有24年了联予,24年中共發(fā)布了14個(gè)版本,那么材原,沸久。讓我們細(xì)數(shù)一下各個(gè)版本中增加的主要特性有哪些。
JDK 1.0
第一個(gè)版本于1996年1月23日發(fā)布余蟹,叫做為Oak卷胯。而真正第一個(gè)穩(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)動(dòng)態(tài)代理的類
J2SE 1.4
- assert 關(guān)鍵字
- 異常鏈
- NIO
J2SE 5.0
- 泛型
- 元數(shù)據(jù)
- 自動(dòng)封箱窑睁、自動(dòng)拆箱
- 枚舉
- 可變參數(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)存管理中的永久代
- 新的日期和時(shí)間 API
Java SE 9
- Jigsaw項(xiàng)目中將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ù)覽階段)
- 動(dòng)態(tài) CDS 歸檔
Java SE 14
- Records
- Switch 表達(dá)式
- 友好的空指針異常
- 打包工具
新版任你發(fā),我用Java 8
從Java 8推出至今葵孤,已經(jīng)很快的發(fā)展到了Java 14了担钮,很多人做過(guò)調(diào)查,最終結(jié)果顯示都是Java 8的使用者最多尤仍。
隨便放兩個(gè)統(tǒng)計(jì)結(jié)果大家感受下:
從這些統(tǒng)計(jì)中箫津,可以看到使用的最多的還是Java 8,其次就是Java 11宰啦。
之所以大多數(shù)人選擇Java 8和Java 11 鲤嫡,是因?yàn)檫@兩個(gè)版本都是目前官方宣布長(zhǎng)期支持的版本。
目前的Java 8和 Java 11 在2023年之前都會(huì)得到官方的持續(xù)支持绑莺。而剛剛在3月份發(fā)布的JDK 14暖眼,在今年的九月份之后就不再維護(hù)更新了。其他在JDK 8 之后發(fā)布的非LTS的版本的更新維護(hù)時(shí)間就是本年左右纺裁。
在JDK的官網(wǎng)上可以看到JDK 8的更新記錄诫肠,最近一次是2020年1月14日司澎。
另外,在兩個(gè)長(zhǎng)期支持的版本 JDK 8 和 JDK 11中栋豫,相比之下肯定是JDK 11 的新特性更多一些挤安,但是并沒(méi)有真的非升不可的新特性。
一方面在JDK 8 是在JDK 7 推出三年后才推出丧鸯,其中包含了很多重要的語(yǔ)言特性和技術(shù)升級(jí)蛤铜,比如函數(shù)式編程,還有一些小改動(dòng)如HashMap引入紅黑樹(shù)等丛肢。
所以JDK 8使用者比較多围肥,另外一方面,JDK 的升級(jí)是一項(xiàng)耗時(shí)耗力的大工程蜂怎,如果沒(méi)有足夠多的好處穆刻,很多公司和組織是不愿意大范圍升級(jí)的。
所以杠步,可以預(yù)見(jiàn)氢伟,在接下來(lái)的很長(zhǎng)一段時(shí)間中,JDK 8 將仍然是主流版本幽歼。不過(guò)值得一提的是朵锣,本次發(fā)布的JDK 14 確實(shí)增加了幾個(gè)可圈可點(diǎn)的新特性。
最后甸私,新版本層出不窮诚些,到底要不要升級(jí)?
作者認(rèn)為颠蕴,如果生產(chǎn)環(huán)境中使用的是Java 8,目前完全沒(méi)必要升級(jí)助析,如果要升級(jí)的話犀被,首選Java 11;但是外冀,作為開(kāi)發(fā)者寡键,倒是自己可以本機(jī)安裝新版的JDK,學(xué)習(xí)并了解下新特性雪隧。
SO西轩,新版任你發(fā),我用Java 8脑沿。