淺談JAVA版本號的問題 Java版本號與JDk版本
初學Java時便一直疑惑Java版本號到底是如何命名的?時常在網(wǎng)上看到Java5、Java6、Java7、Java8 (到今天已經(jīng)到了Java12了,2019.4.5) 這一類 “Java X” 的Java版本名稱,同時又會看到諸如JDK1.5、JDK1.6這中 “JDK1.X” 的JDK叫法。
一直以來都在糾結Java以及JDK的規(guī)范版本名稱到底是如何,直到最近在幾本書上看到了相關的解釋才有點明白,
現(xiàn)總結在這里:
首先1996年發(fā)布了最初版本Java1.0(此前原型為1995年的Oak,因Oak商標已被占用后改名為Java),此后為Java1.1、J2SE1.2、J2SE1.3、J2SE1.4、采用 1.X的命名方式,直到2004年的JavaOne會議后版本數(shù)提升為5.0,這一新版本為Java SE5.0(或J2SE5.0,此處存在疑問,網(wǎng)上使用較多為Java SE5),在2006年Sun公司終結了已經(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 對應每一個版本號 :JDK1.0、JDK1.2 ... JDK1.8、JDK1.9,Java10以后JDK對應名稱為:JDk10、JDK11、JDK12。
時間線如下:
Java SE版本 | JDK版本 | 發(fā)布時間 | 開發(fā)代號 |
---|---|---|---|
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(運動場 |
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核心技術》卷1 第2章 2.1.1
你已經(jīng)看到, JDK 是 Java Development Kit 的縮寫。
有點混亂的是:這個工具包的版本1.2 ~ 版本 1.4 被稱為 Java SDK (軟件開發(fā)包, Software Development Kit )。 在某些場合下,還可以看到這個過時的術語。
另外, 還有一個術語是 Java 運行時環(huán)境( JRE ), 它包含虛擬機但不包含編譯器。這并不是開發(fā)者想要的環(huán)境, 而是專門為不需要編譯器的用戶而提供。
接下來, Java SE 會大量出現(xiàn), 相對于 Java EE ( Enterprise Edition) 和 Java ME ( MicroEdition ), 它是 Java 的標準版。
Java 2 這種提法始于 1998 年。當時 Sim 公司的銷售人員感覺增加小數(shù)點后面的數(shù)值改變版本號并沒有反映出 JDK 1.2 的重大改進。但是,由于在發(fā)布之后才意識到這個問題, 所以決定開發(fā)工具包的版本號仍然沿用 1.2, 接下來的版本是 1.3、 1.4 和 5.0, 但是, Java 平臺被重新命名為 Java 2。
因此, 就有了 Java 2 Standard Edition Software Development Kit ( Java 2標準版軟件開發(fā)包)的 5.0 版,即 J2SE SDK 5.0。
幸運的是,2006 年版本號得到簡化。 Java 標準版的下一個版本取名為 Java SE 6, 后來又有了 Java SE 7 和 Java SE 8。
不過,“- 內(nèi)部” 版本號分別是 1.6.0、 1.7.0 和 1.8.0。
當 Oracle 為解決一些緊急問題做出某些微小的版本改變時, 將其稱為更新。
例如: JavaSE 8u31 是 JavaSE 8 的第 31 次更新, 它的內(nèi)部版本號是 1.8.0_31。 更新不需要安裝在前一個版本上,它會包含整個 JDK 的最新版本。
另外, 并不是所有更新都公開發(fā)布, 所以如果“ 更新 31” 之后沒有“ 更新 32”,你也不用驚慌。
----引自《Java核心技術》卷1 第2章 2.1.1
補充知識:JDK 版本號對應的數(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版本號的問題 Java版本號與JDk版本就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
spring+springmvc整合mabytis時mapper注入失敗問題解決方法
這篇文章主要介紹了spring+springmvc整合mabytis時mapper注入失敗問題解決方法 ,需要的朋友可以參考下2017-08-08mybatis Invalid bound statement(not foun
這篇文章主要介紹了mybatis Invalid bound statement(not found)排坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Filter中獲取傳遞參數(shù)方式(解決post請求參數(shù)問題)
這篇文章主要介紹了Filter中獲取傳遞參數(shù)方式(解決post請求參數(shù)問題),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08聊聊SpringBoot的@Scheduled的并發(fā)問題
這篇文章主要介紹了聊聊SpringBoot的@Scheduled的并發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11淺談Java中浮點型數(shù)據(jù)保留兩位小數(shù)的四種方法
今天在進行開發(fā)的過程中遇到了一個小問題,是關于如何將double類型的數(shù)據(jù)保留兩位小數(shù)。具有一定的參考價值,本文就詳細的介紹一下2021-09-09基于Java中的StringTokenizer類詳解(推薦)
下面小編就為大家?guī)硪黄贘ava中的StringTokenizer類詳解(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05