淺談JAVA版本號(hào)的問題 Java版本號(hào)與JDk版本
初學(xué)Java時(shí)便一直疑惑Java版本號(hào)到底是如何命名的?時(shí)常在網(wǎng)上看到Java5、Java6、Java7、Java8 (到今天已經(jīng)到了Java12了,2019.4.5) 這一類 “Java X” 的Java版本名稱,同時(shí)又會(huì)看到諸如JDK1.5、JDK1.6這中 “JDK1.X” 的JDK叫法。
一直以來都在糾結(jié)Java以及JDK的規(guī)范版本名稱到底是如何,直到最近在幾本書上看到了相關(guān)的解釋才有點(diǎn)明白,
現(xiàn)總結(jié)在這里:
首先1996年發(fā)布了最初版本Java1.0(此前原型為1995年的Oak,因Oak商標(biāo)已被占用后改名為Java),此后為Java1.1、J2SE1.2、J2SE1.3、J2SE1.4、采用 1.X的命名方式,直到2004年的JavaOne會(huì)議后版本數(shù)提升為5.0,這一新版本為Java SE5.0(或J2SE5.0,此處存在疑問,網(wǎng)上使用較多為Java SE5),在2006年Sun公司終結(jié)了已經(jīng)有8年歷史的J2SE、J2EE、J2ME的命名方式啟用了今天的 Java SE、Java EE、Java ME 命名方式,而此后的版本為Java SE6、Java SE7、Java SE8、Java SE9、Java SE10、Java SE11、Java SE12。
而JDK則在 Java1.0 到 Java9 對(duì)應(yīng)每一個(gè)版本號(hào) :JDK1.0、JDK1.2 ... JDK1.8、JDK1.9,Java10以后JDK對(duì)應(yīng)名稱為:JDk10、JDK11、JDK12。
時(shí)間線如下:
| Java SE版本 | JDK版本 | 發(fā)布時(shí)間 | 開發(fā)代號(hào) |
|---|---|---|---|
| Oak | 1995-05-23 | Oak(橡樹) | |
| Java 1.0 | JDK1.0 | 1996-01-23 | |
| Java 1.1 | JDK1.1 | 1997-02-18 | |
| J2SE 1.2 | JDK1.2 | 1998-12-04 | Playground(運(yùn)動(dòng)場 |
| J2SE 1.3 | JDK1.3 | 2000-05-08 | Kestrel(美洲紅隼) |
| J2SE 1.4 | JDK1.4 | 2002-02-13 | Merlin(灰背隼) |
| Java SE 5.0 | JDK1.5 | 2004-09-29 | Tiger(老虎) |
| Java SE 6 | JDK1.6 | 2006-12-11 | Mustang(野馬) |
| Java SE 7 | JDK1.7 | 2011-07-28 | Dolphin(海豚) |
| Java SE 8 | JDK1.8 | 2014-03-18 | Spider(蜘蛛) |
| Java SE 9 | JDK1.9 | 2017-09-21 | |
| Java SE 10 | JDK10 | 2018-03-21 | |
| Java SE 11 | JDK11 | 2018-09-25 | |
| Java SE 12 | JDK12 | 2019-3-20 |
下圖來自《Java核心技術(shù)》卷1 第2章 2.1.1

你已經(jīng)看到, JDK 是 Java Development Kit 的縮寫。
有點(diǎn)混亂的是:這個(gè)工具包的版本1.2 ~ 版本 1.4 被稱為 Java SDK (軟件開發(fā)包, Software Development Kit )。 在某些場合下,還可以看到這個(gè)過時(shí)的術(shù)語。
另外, 還有一個(gè)術(shù)語是 Java 運(yùn)行時(shí)環(huán)境( JRE ), 它包含虛擬機(jī)但不包含編譯器。這并不是開發(fā)者想要的環(huán)境, 而是專門為不需要編譯器的用戶而提供。
接下來, Java SE 會(huì)大量出現(xiàn), 相對(duì)于 Java EE ( Enterprise Edition) 和 Java ME ( MicroEdition ), 它是 Java 的標(biāo)準(zhǔn)版。
Java 2 這種提法始于 1998 年。當(dāng)時(shí) Sim 公司的銷售人員感覺增加小數(shù)點(diǎn)后面的數(shù)值改變版本號(hào)并沒有反映出 JDK 1.2 的重大改進(jìn)。但是,由于在發(fā)布之后才意識(shí)到這個(gè)問題, 所以決定開發(fā)工具包的版本號(hào)仍然沿用 1.2, 接下來的版本是 1.3、 1.4 和 5.0, 但是, Java 平臺(tái)被重新命名為 Java 2。
因此, 就有了 Java 2 Standard Edition Software Development Kit ( Java 2標(biāo)準(zhǔn)版軟件開發(fā)包)的 5.0 版,即 J2SE SDK 5.0。
幸運(yùn)的是,2006 年版本號(hào)得到簡化。 Java 標(biāo)準(zhǔn)版的下一個(gè)版本取名為 Java SE 6, 后來又有了 Java SE 7 和 Java SE 8。
不過,“- 內(nèi)部” 版本號(hào)分別是 1.6.0、 1.7.0 和 1.8.0。
當(dāng) Oracle 為解決一些緊急問題做出某些微小的版本改變時(shí), 將其稱為更新。
例如: JavaSE 8u31 是 JavaSE 8 的第 31 次更新, 它的內(nèi)部版本號(hào)是 1.8.0_31。 更新不需要安裝在前一個(gè)版本上,它會(huì)包含整個(gè) JDK 的最新版本。
另外, 并不是所有更新都公開發(fā)布, 所以如果“ 更新 31” 之后沒有“ 更新 32”,你也不用驚慌。
----引自《Java核心技術(shù)》卷1 第2章 2.1.1
補(bǔ)充知識(shí):JDK 版本號(hào)對(duì)應(yīng)的數(shù)字
如下所示:
J2SE 8 = 52 (0x34 hex) J2SE 7 = 51 (0x33 hex) J2SE 6.0 = 50 (0x32 hex) J2SE 5.0 = 49 (0x31 hex) JDK 1.4 = 48 (0x30 hex) JDK 1.3 = 47 (0x2F hex) JDK 1.2 = 46 (0x2E hex) JDK 1.1 = 45 (0x2D hex)
以上這篇淺談JAVA版本號(hào)的問題 Java版本號(hào)與JDk版本就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中轉(zhuǎn)換器設(shè)計(jì)模式深入講解
這篇文章主要給大家介紹了關(guān)于Java中轉(zhuǎn)換器設(shè)計(jì)模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)
項(xiàng)目中經(jīng)常會(huì)使用到導(dǎo)出功能,有導(dǎo)出Word,有導(dǎo)出Excel的,下面這篇文章主要給大家介紹了關(guān)于JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-09-09
springboot如何通過不同的策略動(dòng)態(tài)調(diào)用不同的實(shí)現(xiàn)類
這篇文章主要介紹了springboot如何通過不同的策略動(dòng)態(tài)調(diào)用不同的實(shí)現(xiàn)類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot使用spring.factories加載默認(rèn)配置的實(shí)現(xiàn)代碼
在日常開發(fā)過程中,發(fā)布一些產(chǎn)品或者框架時(shí),會(huì)遇到某些功能需要一些配置才能正常運(yùn)行,這時(shí)我們需要的提供默認(rèn)配置項(xiàng),同時(shí)用戶也能覆蓋進(jìn)行個(gè)性化2024-06-06
SpringBoot集成SFTP客戶端實(shí)現(xiàn)文件上傳下載實(shí)例
這篇文章主要為大家介紹了SpringBoot集成SFTP客戶端實(shí)現(xiàn)文件上傳下載實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Java Json字符串的雙引號(hào)("")括號(hào)如何去掉
這篇文章主要介紹了Java Json字符串的雙引號(hào)("")括號(hào)如何去掉?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Java的動(dòng)態(tài)代理模式之Cglib代理詳解
這篇文章主要介紹了Java的動(dòng)態(tài)代理模式之Cglib代理詳解,Cglib代理也叫作?子類代理,它是在內(nèi)存中構(gòu)建一個(gè)子類對(duì)象從而實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象功能擴(kuò)展,?有些書也將Cglib代理歸屬到動(dòng)態(tài)代理,需要的朋友可以參考下2023-11-11
Spring cloud gateway設(shè)置context-path服務(wù)路由404排查過程
這篇文章主要介紹了Spring cloud gateway設(shè)置context-path服務(wù)路由404排查過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

