JVM基礎系列第1講:Java 語言的前世今生


Java 語言是一門存在了 20 多年的語言,其年紀比我自己還大。雖然存在了這么長時間,但 Java 至今都是最大的工業級語言,許多大型互聯網公司均采用 Java 來實現其業務系統。大到國際電商巨頭阿里巴巴,小到無名小公司,我們均可看到 Java 的身影。

我是 2010 年開始接觸 Java 語言的,在我剛剛接觸 Java 的時候,我經常對於 Java 中的一些基本概念弄不清楚。例如:JDK 7 與 Java SE 7 有什么區別?JDK 與 JRE 有什么區別 ?Java SE 與 Java EE 有什么區別 ?等等。

上面這些問題其實都是 Java 中最最基礎的知識,如果沒有搞懂這些基礎的知識,就不用談更加深入的學習了。所以在開始學習 JVM 相關知識之前,我們這一節就來把那些我們經常混淆的概念弄清楚。

JDK 與 JRE

JDK 與 JRE 是我們經常遇到的概念,但許多學習了幾年的開發都搞不懂他們之間的區別。簡單地說 JRE(Java Runtime Environment)僅包含運行 Java 程序的必需組件,包括 Java 虛擬機以及 Java 核心類庫等。而 JDK(Java Development Kit)除了包含 JRE外,還附帶了一系列開發、診斷工具。

一般來說,如果只需要運行 Java 程序,那么你安裝 JRE 即可。但如果你要進行 Java 程序的開發,那么你就需要安裝 JDK。

JDK 與 J2SE

JDK 與 Java SE 是我們經常混淆的東西,其實 JDK 是指包含了開發、診斷工具的一個組件,Java SE 則是 Java 三大技術體系的一個。要弄懂這一點,就要了解 Java 語言的歷史。在 1998 年,JDK 1.2 發布,Java 技術體系被拆分為 J2SE、J2EE、J2ME 三大體系。

J2SE 稱之為標准版技術體系(Java 2 Standard Edition),它包含了構成 Java 語言核心的類,例如:數據庫連接、網絡編程、接口定義等。J2SE 技術體系主要用於桌面應用軟件的編程。正因為 J2SE 包含了 JDK 核心類,所以在我們下載 JDK 時,你會看到其實下載處的文字說明是「Java SE 11.0.1 is the latest release for JDK 11」。

J2EE 稱之為企業版技術體系(Java 2 Enterprise Edition),它除了包含 J2SE 中的類,還包含用於開發企業級應用的類,比如:Servlet、JSP、EJB 等。J2EE 技術體系主要用於分布式的網絡程序的開發,如電子商務網站等。

J2ME 稱之為嵌入式技術體系(Java 2 Micro Edition),它包含 J2SE 中的一部分類。J2ME 技術體系主要用於消費類電子產品的軟件開發,例如:手機、PDA、尋呼機等。

通過這么一介紹,我相信大家都明白 JDK 與 Java SE 的區別了。簡單地說,JDK 是一個核心庫、開發工具、診斷工具的合集,而 Java SE 則是一個技術體系。

J2SE 與 Java SE

J2SE 我們弄明白了,那么你知道 J2SE 與 Java SE 這兩者有什么區別嗎?

其實它們指的是同一個東西,只不過在 2006 年 JDK 1.6 發布的時候,其將 J2SE、J2EE、J2ME 的命名方式改為 Java SE 6、Java EE 6、Java ME 6。

所以在下一次 JDK 1.7 發布的時候,其對應的三個技術體系就叫做:Java SE 7、Java EE 7、Java ME 7。比起之前的命名方式,其增加了 JDK 的版本號,能夠更加清晰地表明技術體系所屬的 JDK 版本。

與這個類似的還有一個:JDK 1.7 與 JDK 7。其實從上面 J2SE 與 Java SE 的變更,我們可以推斷,JDK 1.7 與 JDK 7 也是因為類似的命名更換導致的。

經過上面的簡單介紹,相信大家對於一些基礎概念的理解都差不多了。Java 語言發展至今已有多年歷史,但其也不是一蹴而就的,一開始 Java 語言知識一個小小的 Oak 語言。

Java 語言的歷史

在 1991 年,James Gosling 博士發布了 Oak,這個是 Java 語言的前身。但一直到 1995 年的時候,Oak 語言才改名為 Java。

  • 1991 年,James Gosling 博士發布產品 Oak,這是 Java 語言的前身。
  • 1995 年,Oak 語言改名為 Java。
  • 1996 年,JDK1.0 發布,提供了純解釋執行的 Java 虛擬機實現:Sun Classic VM。
  • 1997 年,JDK1.1 發布,代表技術有:JDBC、JavaBeans、內部類、反射。
  • 1998 年,JDK1.2 發布,Java 技術體系被拆分為 J2SE、J2EE、J2ME 三大體系。
  • 2000 年,JDK1.3 發布,默認的 Java 虛擬機由 Sun Classic VM 改為 HotSopt。
  • 2002 年,JDK1.4 發布,Java 真正走向成熟,代表技術有:正則表達式、NIO等。
  • 2004 年,JDK1.5 發布,對語法易用性做了很大改進,新增了泛型、枚舉等,代表技術有:並發包等。
  • 2006 年,JDK1.6 發布,將 J2EE/J2SE/J2ME 的命名方式改為 Java SE 6、Java EE 6、Java ME 6。
  • 2009 年,Sun 公司因為經營不善被 Oracle 公司收購。
  • 2011 年,JDK1.7 發布。
  • 2013 年,JDK1.8 發布。

從上面的歷史我們可以知道 Java 語言具有眾多的特性,但是其眾多特性並不是一蹴而就的,而是一點點迭代而來的。JDK 每個版本新增的語言特性如下:

  • 1997 年,JDK1.1 發布,新增了JDBC、JavaBeans、內部類、反射。
  • 2002 年,JDK1.4 發布,新增了正則表達式、NIO等。
  • 2004 年,JDK1.5 發布,新增了泛型、枚舉、並發包等。

總結

我們這一節簡單地介紹了一些常見概念上的區別,以及 Java 語言的歷史。通過這一節的內容,我們能對 Java 語言的發展有一個大致的理解,便於我們后續進行更加深入的學習。


如果只是看,其實無法真正學會知識的。為了幫助大家更好地學習,我建了一個虛擬機群,專門討論學習 Java 虛擬機方面的內容,每周針對我所發文章進行討論答疑。如果你有興趣,關注「陳樹義」公眾號,通過右下角菜單「入群交流」加我好友,小助手會拉你入群。


JVM基礎系列文章目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM