Java 簡介

2022-03-17 16:53 更新

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

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

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

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

2009年,sun公司被oracle收購.

2018年,開源組織Eclipse基金會宣布將JavaEE(Enterprise Edition)被更名為JakartaEE(雅加達(dá))。


主要特性

  • Java語言是簡單的:

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

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

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

  • Java語言是分布式的:

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

  • Java語言是健壯的:

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

  • Java語言是安全的:

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

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

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

  • Java語言是可移植的:

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

  • Java語言是解釋型的:

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

  • Java是高性能的:

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

  • Java語言是多線程的:

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

  • Java語言是動態(tài)的:

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


發(fā)展歷史

  • 1995年5月23日,Java語言誕生
  • 1996年1月,第一個(gè)JDK-JDK1.0誕生
  • 1996年4月,10個(gè)最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入JAVA技術(shù)
  • 1996年9月,約8.3萬個(gè)網(wǎng)頁應(yīng)用了JAVA技術(shù)來制作
  • 1997年2月18日,JDK1.1發(fā)布
  • 1997年4月2日,JavaOne會議召開,參與者逾一萬人,創(chuàng)當(dāng)時(shí)全球同類會議規(guī)模之紀(jì)錄
  • 1997年9月,JavaDeveloperConnection社區(qū)成員超過十萬
  • 1998年2月,JDK1.1被下載超過2,000,000次
  • 1998年12月8日,JAVA2企業(yè)平臺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語言發(fā)展史上的又一里程碑。為了表示該版本的重要性,J2SE1.5更名為Java SE 5.0
  • 2005年6月,JavaOne大會召開,SUN公司公開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億美元收購Sun。取得java的版權(quán)。
  • 2010年11月,由于甲骨文對于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開發(fā)工具

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

  • Linux 系統(tǒng)或者Windows 95/98/2000/XP,WIN 7/8/10/11系統(tǒng)
  • Java JDK 8以上版本(這是必須的)
  • Notepad編輯器或者其他編輯器(雖然使用記事本也可以進(jìn)行代碼編寫,但一個(gè)舒適的工具可以提高編程的效率,小編這里推薦使用vscode)。
  • IDE:Eclipse或者IntelliJ IDEA(對于初學(xué)者而言,這兩款I(lǐng)DE都很不錯(cuò),但卻不是必要的(初學(xué)者使用到的功能比較少,不需要用到這么多功能))

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

public class MyFirstJavaProgram {
    public static void main(String []args) {
       System.out.println("Hello World");
    }
} 

在下一章節(jié)我們將介紹如何配置java開發(fā)環(huán)境。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號