Java是一門面向?qū)ο缶幊陶Z(yǔ)言嘲碧,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn)嘴纺,還摒棄了C++里難以理解的多繼承、指針等概念阶淘,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表互妓,極好地實(shí)現(xiàn)了面向?qū)ο罄碚撓希试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程[1]
。
Java具有簡(jiǎn)單性冯勉、面向?qū)ο蟪喊觥⒎植际健⒔研宰普踩酝鹈椤⑵脚_(tái)獨(dú)立與可移植性、多線程交胚、動(dòng)態(tài)性等特點(diǎn)[2]
份汗。Java可以編寫(xiě)桌面應(yīng)用程序盈电、Web應(yīng)用程序诵盼、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等
Java SE(Java Platform等缀,Standard Edition)。Java SE 以前稱為 J2SE栅表。它允許開(kāi)發(fā)和部署在桌面轩猩、服務(wù)器卷扮、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java SE 包含了支持 Java Web 服務(wù)開(kāi)發(fā)的類均践,并為 Java Platform晤锹,Enterprise Edition(Java EE)提供基礎(chǔ)。
Java EE(Java Platform彤委,Enterprise Edition)鞭铆。這個(gè)版本以前稱為 J2EE。企業(yè)版本幫助開(kāi)發(fā)和部署可移植焦影、健壯车遂、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的斯辰,它提供 Web 服務(wù)舶担、組件模型、管理和通信 API彬呻,可以用來(lái)實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(service-oriented architecture衣陶,SOA)和 Web 2.0 應(yīng)用程序。
Java ME(Java Platform闸氮,Micro Edition)剪况。這個(gè)版本以前稱為 J2ME。Java ME 為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)蒲跨、PDA译断、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。Java ME 包括靈活的用戶界面或悲、健壯的安全模型孙咪、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持⊙灿铮基于 Java ME 規(guī)范的應(yīng)用程序只需編寫(xiě)一次翎蹈,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能捌臊。
Java編程的特點(diǎn)Java語(yǔ)言是簡(jiǎn)單的
Java 語(yǔ)言的語(yǔ)法與C語(yǔ)言和C 語(yǔ)言很接近杨蛋,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java兜材。另一方面理澎,Java丟棄了C 中很少使用的逞力、很難理解的、令人迷惑的那些特性糠爬,如操作符重載寇荧、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換执隧。特別地揩抡,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集镀琉,使得程序員不必為內(nèi)存管理而擔(dān)憂峦嗤。
Java編程的特點(diǎn)Java語(yǔ)言是一個(gè)面向?qū)ο蟮?/p>
Java 語(yǔ)言提供類、接口和繼承等原語(yǔ)屋摔,為了簡(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編程的特點(diǎn)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串稀、URL Connection、Socket狮杨、Server Socket等母截。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。
Java編程的特點(diǎn)Java語(yǔ)言是健壯的
Java的強(qiáng)類型機(jī)制橄教、異常處理清寇、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇护蝶。Java的安全檢查機(jī)制使得Java更具健壯性华烟。
Java編程的特點(diǎn)Java語(yǔ)言是安全的
Java 通常被用在網(wǎng)絡(luò)環(huán)境中,為此持灰,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊盔夜。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類Class Loader),如分配不同的名字空間以防替代本地的同名類喂链、字節(jié)代碼檢查返十,并提供安 全管理機(jī)制(類Security Manager)讓Java應(yīng)用設(shè)置安全哨兵。
Java編程的特點(diǎn)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編程的特點(diǎn)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編程的特點(diǎ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編程的特點(diǎn)Java是高性能的
與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的纺弊。事實(shí)上牛欢,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C。
Java編程的特點(diǎn)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編程的特點(diǎn)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í)刻的類型檢查。