1. 程式人生 > >【深入理解JVM虛擬機器】第1章 走進java

【深入理解JVM虛擬機器】第1章 走進java

1.1Java技術體系

Sun 官方定義的Java技術體系包括以下幾個組成部分:

  • Java 程式設計語言
  • 各種硬體平臺上的 Java 虛擬機器
  • Class 檔案格式
  • Java API 類庫
  • 第三方 Java 類庫

1.1.1 Java API

按照技術所服務的領域劃分,Java API 可以分為4個領域。

  • Java Card:支援一些 Java 小程式執行在小記憶體裝置上的平臺。
  • Java ME(Micro Edition):支援Java程式執行在移動終端的平臺。
  • Java SE(Standard Edition):支援面向桌面級應用的Java平臺。
  • Java EE(Enterprise Edition):支援使用多層架構的企業應用的Java平臺。

1.1.2 JDK

一般情況下,我們把Java程式設計語言Java虛擬機器Java API類庫統稱為JDK(Java Development Kit),JDK是用於支援Java程式開發的最小環境。

1.1.3 JRE

一般情況下,我們把Java SEJava虛擬機器統稱為 JRE,JRE 是支援 Java 程式執行額標準環境。

1.2 Java發展史

image.png | left | 827x359

  • 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 釋出。

1.3 Java虛擬機發展史

1.3.1 Sun Classic VM

作為“世界上第一款商用 Java 虛擬機器”,從 JDK1.0 到 JDK1.2 都講 Sun Classic VM 作為其預設的 Java 虛擬機器。

1.3.2 Exact VM

Exact VM 是在 JDK1.2 時釋出的一款執行在 Solaris 平臺的虛擬機器,但是到了 JDK1.3 其就不存在了。因為在 JDK1.3 之後,Sun 公司將 HotSpot 虛擬機器作為 Java 語言預設的虛擬機器。

1.3.3 Sun HotSpot VM

其實一開始是由一家名為“Longview Technologies”的小公司開發,1999年的時候被 Sun 公司收購。在JDK1.3 中其作為附加額虛擬機器中提供,在 JDK1.3 之後其作為預設的 Java 虛擬機器,並且一直將其作為預設虛擬機器沿用至今。

1.3.4 BEA JRockit

BEA JRockit 是由 BEA 公司開發的,專門為伺服器硬體和伺服器端應用場景高度優化的虛擬機器。

1.3.5 IBM J9 VM

多用途虛擬機器,其定位與 Sun HotSpot VM,IBM 的目標是將其應用於 IBM 產品上。

1.4 Java技術的趨勢

  • 模組化。在應用系統不斷複雜、越來越龐大的時候,模組化是一個重要的應用方向。
  • 混合語言。有越來越多基於Java虛擬機器的語言誕生,他們可能在應用中的不同層次發揮作用。
  • 多核並行
  • 豐富語法
  • 64位虛擬機器

1.5 編譯自己的JDK