Java 簡(jiǎn)介

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言和 Java 平臺(tái)的總稱。由 James Gosling和同事們共同研發(fā),并在 1995 年正式推出。

后來(lái) Sun 公司被 Oracle (甲骨文)公司收購(gòu),Java 也隨之成為 Oracle 公司的產(chǎn)品。

Java分為三個(gè)體系:

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平臺(tái)標(biāo)準(zhǔn)版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平臺(tái)企業(yè)版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平臺(tái)微型版)。

2005 年 6 月,JavaOne 大會(huì)召開(kāi),SUN 公司公開(kāi) Java SE 6。此時(shí),Java 的各種版本已經(jīng)更名,以取消其中的數(shù)字 "2":J2EE 更名為 Java EE,J2SE 更名為Java SE,J2ME 更名為 Java ME。


主要特性

  • Java 語(yǔ)言是簡(jiǎn)單的:

    Java 語(yǔ)言的語(yǔ)法與 C 語(yǔ)言和 C++ 語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面,Java 丟棄了 C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java 語(yǔ)言不使用指針,而是引用。并提供了自動(dòng)分配和回收內(nèi)存空間,使得程序員不必為內(nèi)存管理而擔(dān)憂。

  • Java 語(yǔ)言是面向?qū)ο蟮模?/strong>

    Java 語(yǔ)言提供類、接口和繼承等面向?qū)ο蟮奶匦?,為了?jiǎn)單起見(jiàn),只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為 implements)。Java 語(yǔ)言全面支持動(dòng)態(tài)綁定,而 C++語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。

  • Java語(yǔ)言是分布式的:

    Java 語(yǔ)言支持 Internet 應(yīng)用的開(kāi)發(fā),在基本的 Java 應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(遠(yuǎn)程方法激活)機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。

  • Java 語(yǔ)言是健壯的:

    Java 的強(qiáng)類型機(jī)制、異常處理、垃圾的自動(dòng)收集等是 Java 程序健壯性的重要保證。對(duì)指針的丟棄是 Java 的明智選擇。Java 的安全檢查機(jī)制使得 Java 更具健壯性。

  • Java語(yǔ)言是安全的:

    Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java 提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java 語(yǔ)言具有的許多安全特性以外,Java 對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類 ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類 SecurityManager)讓 Java 應(yīng)用設(shè)置安全哨兵。

  • Java 語(yǔ)言是體系結(jié)構(gòu)中立的:

    Java 程序(后綴為 java 的文件)在 Java 平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為 class 的文件),然后可以在實(shí)現(xiàn)這個(gè) Java 平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。

  • Java 語(yǔ)言是可移植的:

    這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java 還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java 系統(tǒng)本身也具有很強(qiáng)的可移植性,Java 編譯器是用 Java 實(shí)現(xiàn)的,Java 的運(yùn)行環(huán)境是用 ANSI C 實(shí)現(xiàn)的。

  • Java 語(yǔ)言是解釋型的:

    如前所述,Java 程序在 Java 平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè) Java 平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java 平臺(tái)中的 Java 解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。

  • Java 是高性能的:

    與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java 的確是高性能的。事實(shí)上,Java 的運(yùn)行速度隨著 JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于 C++。

  • Java 語(yǔ)言是多線程的:

    在 Java 語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由 Thread 類或其子(孫)類來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線程:其一,使用型構(gòu)為 Thread(Runnable) 的構(gòu)造子類將一個(gè)實(shí)現(xiàn)了 Runnable 接口的對(duì)象包裝成一個(gè)線程,其二,從 Thread 類派生出子類并重寫(xiě) run 方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是 Thread 類已經(jīng)實(shí)現(xiàn)了 Runnable 接口,因此,任何一個(gè)線程均有它的 run 方法,而 run 方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來(lái)控制。Java 語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為 synchronized)。

  • Java 語(yǔ)言是動(dòng)態(tài)的:

    Java 語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java 程序需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過(guò)網(wǎng)絡(luò)來(lái)載入所需要的類。這也有利于軟件的升級(jí)。另外,Java 中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。


發(fā)展歷史

  • 1995 年 5 月 23 日,Java 語(yǔ)言誕生
  • 1996 年 1 月,第一個(gè) JDK-JDK1.0 誕生
  • 1996 年 4 月,10 個(gè)最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入 JAVA 技術(shù)
  • 1996 年 9 月,約 8.3 萬(wàn)個(gè)網(wǎng)頁(yè)應(yīng)用了 JAVA 技術(shù)來(lái)制作
  • 1997 年 2 月 18 日,JDK1.1 發(fā)布
  • 1997 年 4 月 2 日,JavaOne 會(huì)議召開(kāi),參與者逾一萬(wàn)人,創(chuàng)當(dāng)時(shí)全球同類會(huì)議規(guī)模之紀(jì)錄
  • 1997 年 9 月,JavaDeveloperConnection 社區(qū)成員超過(guò)十萬(wàn)
  • 1998 年 2 月,JDK1.1 被下載超過(guò) 2,000,000次
  • 1998 年 12 月 8 日,JAVA2 企業(yè)平臺(tái) J2EE 發(fā)布
  • 1999 年 6月,SUN 公司發(fā)布 Java 的三個(gè)版本:標(biāo)準(zhǔn)版(JavaSE, 以前是 J2SE)、企業(yè)版(JavaEE 以前是 J2EE)和微型版(JavaME,以前是 J2ME)
  • 2000 年 5 月 8 日,JDK1.3 發(fā)布
  • 2000 年 5 月 29 日,JDK1.4 發(fā)布
  • 2001 年 6 月 5 日,NOKIA 宣布,到 2003 年將出售 1 億部支持 Java 的手機(jī)
  • 2001 年 9 月 24 日,J2EE1.3 發(fā)布
  • 2002 年 2 月 26 日,J2SE1.4 發(fā)布,自此 Java 的計(jì)算能力有了大幅提升
  • 2004 年 9 月 30 日 18:00PM,J2SE1.5 發(fā)布,成為 Java 語(yǔ)言發(fā)展史上的又一里程碑。為了表示該版本的重要性,J2SE1.5 更名為 Java SE 5.0
  • 2005 年 6 月,JavaOne 大會(huì)召開(kāi),SUN 公司公開(kāi) Java SE 6。此時(shí),Java 的各種版本已經(jīng)更名,以取消其中的數(shù)字 "2":J2EE 更名為 Java EE,J2SE 更名為 Java SE,J2ME 更名為 Java ME
  • 2006 年 12 月,SUN 公司發(fā)布 JRE6.0
  • 2009 年 04 月 20 日,甲骨文 74 億美元收購(gòu) Sun,取得 Java 的版權(quán)。
  • 2010 年 11 月,由于甲骨文對(duì)于 Java 社區(qū)的不友善,因此 Apache 揚(yáng)言將退出 JCP。
  • 2011 年 7 月 28 日,甲骨文發(fā)布 Java7.0 的正式版。
  • 2014 年 3 月 18 日,Oracle 公司發(fā)表 Java SE 8。
  • 2017 年 9 月 21 日,Oracle 公司發(fā)表 Java SE 9
  • 2018 年 3 月 21 日,Oracle 公司發(fā)表 Java SE 10
  • 2018 年 9 月 25 日,Java SE 11 發(fā)布
  • 2019 年 3 月 20 日,Java SE 12 發(fā)布

Java 開(kāi)發(fā)工具

Java 語(yǔ)言盡量保證系統(tǒng)內(nèi)存在 1G 以上,其他工具如下所示:

  • Linux 系統(tǒng)、Mac OS 系統(tǒng)、Windows 95/98/2000/XP,WIN 7/8系統(tǒng)。
  • Java JDK 7、8……
  • vscode 編輯器或者其他編輯器。
  • IDE:Eclipse、 IntelliJ IDEA、NetBeans 等。

安裝好以上的工具后,我們就可以輸出Java的第一個(gè)程序 "Hello World!"