Java由四方面組成:Java編程語(yǔ)言、Java類(lèi)文件格式、Java虛擬機和Java應用程序接口(Java API)。
Java平臺由Java虛擬機(Java Virtual Machine,簡(jiǎn)稱(chēng)JVM)和Java 應用編程接口(Application
Programming Interface,簡(jiǎn)稱(chēng)API)構成。
Java應用編程接口為Java應用提供了一個(gè)獨立于操作系統的標準接口,可分為基本部分和擴展部分。在硬件
或操作系統平臺上安裝一個(gè)Java平臺之后,Java應用程序就可運行。Java平臺已經(jīng)嵌入了幾乎所有的操作系統。
這樣Java程序可以只編譯一次,就可以在各種系統中運行。Java應用編程接口已經(jīng)從版發(fā)展到版。常用的
Java平臺基于,最近版本為。
體系
Java分為三個(gè)體系:
J2SE(Java2 Platform Standard Edition,java平臺標準版)
J2EE(Java 2 Platform,Enterprise Edition,java平臺企業(yè)版)
J2ME(Java 2 Platform Micro Edition,java平臺微型版)
平臺構架
Java平臺由Java虛擬機(Java Virtual Machine)和Java應用編程接口(Application
ProgrammingInterface、簡(jiǎn)稱(chēng)API)構成。Java應用編程接口為Java應用提供了一個(gè)獨立于操作系統的標準接口,
可分為基本部分和擴展部分。在硬件或操作系統平臺上安裝一個(gè)Java平臺之后,Java應用程序就可運行。Java
平臺已經(jīng)嵌入了幾乎所有的操作系統。這樣Java程序可以只編譯一次,就可以在各種系統中運行。Java應用編程
接口已經(jīng)從版發(fā)展到版。常用的Java平臺基于,最近版本為。
Java SE
* Java SE(Java Platform,Standard Edition)。Java SE 以前稱(chēng)為J2SE。它允許開(kāi)發(fā)和部署在桌面、服
務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java應用程序。Java SE 包含了支持Java Web 服務(wù)開(kāi)發(fā)的類(lèi),并為Java
Platform,Enterprise Edition(Java EE)提供基礎。
Java EE
* Java EE(Java Platform,Enterprise Edition)。這個(gè)版本以前稱(chēng)為J2EE。企業(yè)版本幫助開(kāi)發(fā)和部署可
移植、健壯、可伸縮且安全的服務(wù)器端 Java 應用程序。Java EE 是在Java SE 的基礎上構建的,它提供Web 服
務(wù)、組件模型、管理和通信API,可以用來(lái)實(shí)現企業(yè)級的面向服務(wù)體系結構(service-oriented architecture,
SOA)和Web 應用程序。
Java ME
* Java ME(Java Platform,Micro Edition)。這個(gè)版本以前稱(chēng)為J2ME,也叫K-JAVA。Java ME 為在移動(dòng)設
備和嵌入式設備(比如手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個(gè)健壯且靈活的環(huán)境。Java
ME 包括靈活的用戶(hù)界面、健壯的安全模型、許多內置的網(wǎng)絡(luò )協(xié)議以及對可以動(dòng)態(tài)下載的連網(wǎng)和離線(xiàn)應用程序的豐
富支持?;贘ava ME 規范的應用程序只需編寫(xiě)一次,就可以用于許多設備,而且可以利用每個(gè)設備的本機功
能。
優(yōu)勢

與傳統程序不同,Sun 公司在推出 Java 之際就將其作為一種開(kāi)放的技術(shù)。全球數以萬(wàn)計的 Java 開(kāi)發(fā)公司
被要求所設計的 Java 軟件必須相互兼容?!癑ava 語(yǔ)言靠群體的力量而非公司的力量”是Sun公司的口號之一,
并獲得了廣大軟件開(kāi)發(fā)商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。
Sun 公司對 Java 編程語(yǔ)言的解釋是:Java 編程語(yǔ)言是個(gè)簡(jiǎn)單、面向對象、分布式、解釋性、健壯、安全與
系統無(wú)關(guān)、可移植、高性能、多線(xiàn)程和動(dòng)態(tài)的語(yǔ)言。
Java 平臺是基于 Java 語(yǔ)言的平臺。這樣的平臺非常流行。因此微軟公司推出了與之競爭的.NET平臺以及模
仿Java的C#語(yǔ)言。
主要特性
Java語(yǔ)言是簡(jiǎn)單的。
Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數程序員很容易學(xué)習和使用Java[7]。另一方面,Java丟
棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強制類(lèi)型轉換。特別
地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內存管理而擔憂(yōu)。
Java語(yǔ)言是面向對象的。
Java語(yǔ)言提供類(lèi)、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類(lèi)之間的單繼承,但支持接口之間的多繼承,
并支持類(lèi)與接口之間的實(shí)現機制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++語(yǔ)言只對虛函數使
用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向對象程序設計語(yǔ)言。
Java語(yǔ)言是分布式的。
Java語(yǔ)言支持Internet應用的開(kāi)發(fā),在基本的Java應用編程接口中有一個(gè)網(wǎng)絡(luò )應用編程接口(java net),
它提供了用于網(wǎng)絡(luò )應用編程的類(lèi)庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法
激活)機制也是開(kāi)發(fā)分布式應用的重要手段。
Java語(yǔ)言是健壯的。
Java的強類(lèi)型機制、異常處理、垃圾的自動(dòng)收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明
智選擇。Java的安全檢查機制使得Java更具健壯性。
Java語(yǔ)言是安全的。
Java通常被用在網(wǎng)絡(luò )環(huán)境中,為此,Java提供了一個(gè)安全機制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許
多安全特性以外,Java對通過(guò)網(wǎng)絡(luò )下載的類(lèi)具有一個(gè)安全防范機制(類(lèi)ClassLoader),如分配不同的名字空間以
防替代本地的同名類(lèi)、字節代碼檢查,并提供安全管理機制(類(lèi)SecurityManager)讓Java應用設置安全哨兵。
Java語(yǔ)言是體系結構中立的。
Java程序(后綴為java的文件)在Java平臺上被編譯為體系結構中立的字節碼格式(后綴為class的文件),
然后可以在實(shí)現這個(gè)Java平臺的任何系統中運行。這種途徑適合于異構的網(wǎng)絡(luò )環(huán)境和軟件的分發(fā)。
Java語(yǔ)言是可移植的。
這種可移植性來(lái)源于體系結構中立性,另外,Java還嚴格規定了各個(gè)基本數據類(lèi)型的長(cháng)度。Java系統本身也
具有很強的可移植性,Java編譯器是用Java實(shí)現的,Java的運行環(huán)境是用ANSI C實(shí)現的。
Java語(yǔ)言是解釋型的。
如前所述,Java程序在Java平臺上被編譯為字節碼格式,然后可以在實(shí)現這個(gè)Java平臺的任何系統中運行。
在運行時(shí),Java平臺中的Java解釋器對這些字節碼進(jìn)行解釋執行,執行過(guò)程中需要的類(lèi)在聯(lián)接階段被載入到運行環(huán)境中。
Java是高性能的。
與那些解釋型的高級腳本語(yǔ)言相比,Java的確是高性能的。事實(shí)上,Java的運行速度隨著(zhù)JIT(Just-In-
Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C++。
Java語(yǔ)言是多線(xiàn)程的。
在Java語(yǔ)言中,線(xiàn)程是一種特殊的對象,它必須由Thread類(lèi)或其子(孫)類(lèi)來(lái)創(chuàng )建。通常有兩種方法來(lái)創(chuàng )建
線(xiàn)程:其一,使用型構為T(mén)hread(Runnable) 的構造子將一個(gè)實(shí)現了Runnable接口的對象包裝成一個(gè)線(xiàn)程,其二,
從Thread類(lèi)派生出子類(lèi)并重寫(xiě)run方法,使用該子類(lèi)創(chuàng )建的對象即為線(xiàn)程。值得注意的是Thread類(lèi)已經(jīng)實(shí)現了
Runnable接口,因此,任何一個(gè)線(xiàn)程均有它的run方法,而run方法中包含了線(xiàn)程所要運行的代碼。線(xiàn)程的活動(dòng)由
一組方法來(lái)控制。Java語(yǔ)言支持多個(gè)線(xiàn)程的同時(shí)執行,并提供多線(xiàn)程之間的同步機制(關(guān)鍵字為synchronized)。
Java語(yǔ)言是動(dòng)態(tài)的。
Java語(yǔ)言的設計目標之一是適應于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類(lèi)能夠動(dòng)態(tài)地被載入到運行環(huán)境,也可
以通過(guò)網(wǎng)絡(luò )來(lái)載入所需要的類(lèi)。這也有利于軟件的升級。另外,Java中的類(lèi)有一個(gè)運行時(shí)刻的表示,能進(jìn)行運行
時(shí)刻的類(lèi)型檢查。Java語(yǔ)言的優(yōu)良特性使得Java應用具有無(wú)比的健壯性和可靠性,這也減少了應用系統的維護費
用。Java對對象技術(shù)的全面支持和Java平臺內嵌的API能縮短應用系統的開(kāi)發(fā)時(shí)間并降低成本。Java的編譯一次,
到處可運行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結構和在多平臺之間傳遞信息的低成本方式。特別是Java
企業(yè)應用編程接口(Java Enterprise APIs)為企業(yè)計算及電子商務(wù)應用系統提供了有關(guān)技術(shù)和豐富的類(lèi)庫。