陳小超 貴州財(cái)經(jīng)大學(xué)
(1)簡(jiǎn)單性,Java是個(gè)精簡(jiǎn)的系統(tǒng),無需強(qiáng)大的硬件環(huán)境便可以很好地運(yùn)行。Java的風(fēng)格和語法類似于C++,因此C++程序員可以很快就掌握J(rèn)ava編程技術(shù)。Java摒棄了C++中容易引發(fā)程序錯(cuò)誤的地方,如多重繼承、運(yùn)算符重載、指針和內(nèi)存管理等,Java語言具有支持多線程、自動(dòng)垃圾收集和采用引用等特性。Java提供了豐富的類庫(kù),方便用戶迅速掌握J(rèn)ava。
(2)面向?qū)ο罂梢哉f是Java最基本的特性,Java語言的設(shè)計(jì)完全是面向?qū)ο蟮?,它不支持類似C語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。所有的Java程序和applet均是對(duì)象,Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼繼承及重用。
(3)Java包括一個(gè)支持HTTP和FTP等基于TCP/IP協(xié)議的子庫(kù)。因此,Java應(yīng)用程序可憑借URL打開并訪問網(wǎng)絡(luò)上的對(duì)象,就像訪問本地文件一樣簡(jiǎn)單方便。Java的分布性為實(shí)現(xiàn)在分布環(huán)境尤其是Internet下實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容提供了技術(shù)途徑。
(4)健壯性。Java是一種強(qiáng)類型語言,它在編譯和運(yùn)行時(shí)要進(jìn)行大量的類型檢查。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤,操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java的數(shù)組并非采用指針實(shí)現(xiàn),從而避免了數(shù)組越界的可能,Java通過自動(dòng)垃圾收集器避免了許多由于內(nèi)存管理而造成的錯(cuò)誤,Java在程序中由于不采用指針來訪問內(nèi)存單元,從而也避免了許多錯(cuò)誤發(fā)生的可能。
(5)結(jié)構(gòu)中立。作為一種網(wǎng)絡(luò)語言,Java編譯器將Java源程序編譯成一種與體系結(jié)構(gòu)無關(guān)的中間文件格式,只要有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼,從而使同一版本的應(yīng)用程序可以運(yùn)行在不同的平臺(tái)上。
(6)可移植。Java與體系結(jié)構(gòu)無關(guān)的特性使得Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,這成為Java應(yīng)用軟件便于移植的良好基礎(chǔ)。同時(shí)Java通過定義獨(dú)立于平臺(tái)的基本數(shù)據(jù)類型及其運(yùn)算,使數(shù)據(jù)得以在任何硬件平臺(tái)上保持一致,這也體現(xiàn)了Java語言的可移植性。還有Java編譯器本身就是用Java語言編寫的,Java運(yùn)算系統(tǒng)的編制依據(jù)POSIX方便移植的限制,用ANSIC語言寫成,Java語言規(guī)范中也沒有任何“同具體實(shí)現(xiàn)相關(guān)”的內(nèi)容,這說明Java本身也具有可移植性,同時(shí)Java語言的類庫(kù)也具有可移植性
Java是一種可以撰寫跨平臺(tái)應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。功能完善的通用程序設(shè)計(jì)語言,可以用來開發(fā)可靠的、要求嚴(yán)格的應(yīng)用程序。java是純面向?qū)ο箝_發(fā),功能強(qiáng)大,分支眾多,沒有java不能做的軟件。穩(wěn)定,應(yīng)用廣泛,一定時(shí)期內(nèi)很難被其他編程語言取代而許多大型系統(tǒng)都是用java開發(fā),也不可能輕易使用其他語言待遇。
(1)金融服務(wù)中Java有很重要的應(yīng)用。很多全球投資銀行像高盛、花旗、巴克萊、標(biāo)準(zhǔn)渣打銀行等其他銀行使用Java來開發(fā)前臺(tái)和后臺(tái)電子交易系統(tǒng),提供解決方案和確認(rèn)系統(tǒng)以及數(shù)據(jù)處理項(xiàng)目等等。Java大多數(shù)用在開發(fā)服務(wù)器端的應(yīng)用,幾乎不用來開發(fā)前端,前端是從一個(gè)服務(wù)器接受數(shù)據(jù),然后處理它并把它發(fā)送給其他進(jìn)程。Java Swing對(duì)交易員來說在開發(fā)客戶端的GUI方面還是很受歡迎的,但是現(xiàn)在C#很快地在這個(gè)領(lǐng)域獲得了市場(chǎng)占有率,Java Swing在這方面被擠壓喘不過氣來。
(2)Java在電子商務(wù)和Web應(yīng)用領(lǐng)域也是有很多的應(yīng)用?,F(xiàn)在有很多使用Spring MVC、Structs2.0和類似框架開發(fā)的RESTful風(fēng)格的服務(wù),甚至件一個(gè)簡(jiǎn)單的依賴Servlet、JSP和Structs開發(fā)的web應(yīng)用在各種各樣的政府項(xiàng)目中很受歡迎,政府的衛(wèi)生局、保險(xiǎn)部門、國(guó)防部等部門都有他們使用Java開發(fā)的web應(yīng)用。
(3)很多有用的軟件和開發(fā)工具是用Java開發(fā)的。以至于有一段時(shí)間,Swing在開發(fā)客戶端方面非常流行,尤其是在金融行業(yè)和投資銀行?,F(xiàn)在,Java FX正逐漸受到歡迎,但是仍不能成為Swing的替代品,而C#在金融領(lǐng)域內(nèi)已經(jīng)幾乎代替了Swing。
(4)第三方交易應(yīng)用,作為更大的金融服務(wù)業(yè)的一部分也使用Java開發(fā)。流行的交易應(yīng)用像Murex也是用Java開發(fā)的,很多銀行都使用它們來連接前后端。
(5)J2ME應(yīng)用雖然iOS和Android的出現(xiàn)幾乎抹殺了J2ME的市場(chǎng),但是在低終端Nokia和使用J2ME的三星手機(jī)方面還是有很大的市場(chǎng)。有一段時(shí)間,安卓上可用的游戲、軟件幾乎全都是用MIDP、CLDC 。WhatsApp很受歡迎的一個(gè)原因是因?yàn)閷?duì)所有Nokia手機(jī)的J2ME平臺(tái)來說是可用的。
(6)在嵌入式領(lǐng)域,Java也是有很大應(yīng)用的。它展示了平臺(tái)是多么的強(qiáng)大,你僅需130Kb就能使用Java技術(shù)(在智能卡或者傳感器上)。起初,Java是為嵌入式設(shè)備而設(shè)計(jì)的。實(shí)際上,這是Java最初“一次編寫,到處運(yùn)行”初衷的一個(gè)部分,現(xiàn)在看起來獲得了成功。
(7)大數(shù)據(jù)技術(shù)。Hadoop和其他大數(shù)據(jù)技術(shù)以這樣或那樣的方式使用著Java,但是Java在該領(lǐng)域并不占統(tǒng)治地位,因?yàn)橛衅渌夹g(shù),如MongoDB是用C++開發(fā)的。如果Hadoop或者ElasticSearch發(fā)展壯大的話,Java在這個(gè)發(fā)展的領(lǐng)域有可能獲得主要的占有率。
(8)高頻率的交易領(lǐng)域。Java平臺(tái)在現(xiàn)代JIT技術(shù)的幫助下,它的性能特性已經(jīng)有了很大提升,傳送性能已經(jīng)到了C++水平。由于這個(gè)原因,Java在開發(fā)高性能系統(tǒng)方面還是很受歡迎的,因?yàn)樾阅芘c機(jī)器語言相比稍差一些,但是你可以安全地折衷——輕便、可維護(hù)帶來更快地速度。對(duì)一個(gè)缺乏經(jīng)驗(yàn)的C++程序員來說,只能使應(yīng)用變得更慢和不可靠。
隨著我國(guó)經(jīng)濟(jì)水平及計(jì)算機(jī)技術(shù)水平的飛速不斷提高,近年來,適用于各種操作平臺(tái)系統(tǒng)的JAVA編程語言已逐漸由 PC平臺(tái)向手機(jī)智能平臺(tái)轉(zhuǎn)移,并得到了較為良好的發(fā)展,這對(duì)我國(guó)IT行業(yè)而言,具有十分重要的發(fā)展意義。在未來的不斷發(fā)展中,JAVA編程語言也會(huì)有更多層面的應(yīng)用和開發(fā)。