很多Java初學(xué)者都會(huì)思考一個(gè)問(wèn)題,就是Java可以做什么項(xiàng)目?玩過(guò)手機(jī)游戲的朋友應(yīng)該聽(tīng)說(shuō)過(guò)《我的世界》這款游戲,其實(shí)這款游戲就是Java做的,說(shuō)到這里,很多人就會(huì)想到,桌面工具如360、qq也沒(méi)有用Java開(kāi)發(fā),甚至操作系統(tǒng)Linux、Windows也沒(méi)用。那么Java可以做什么項(xiàng)目?
Java做過(guò)哪些項(xiàng)目或者現(xiàn)實(shí)中的應(yīng)用?好吧,其實(shí)并不是只有你一個(gè)人對(duì)這個(gè)問(wèn)題感到困惑。很多同學(xué)在開(kāi)始學(xué)習(xí)Java之前或者在畢業(yè)時(shí)選擇Java作為編程語(yǔ)言時(shí)也問(wèn)過(guò)相同的問(wèn)題。順便說(shuō)一下,你可以通過(guò)在你計(jì)算機(jī)上安裝Java獲得Java在哪些地方使用的相關(guān)線索。Oracle聲稱(chēng)超三十億的設(shè)備上運(yùn)行著Java,那是一個(gè)非常龐大的數(shù)字。大多數(shù)公司用一種或者其他方式使用Java。很多服務(wù)器端使用Java來(lái)處理每天數(shù)十百萬(wàn)的請(qǐng)求,高頻率的交易應(yīng)用同樣也使用Java,例如LMAX交易程序,這套程序基于他們開(kāi)創(chuàng)性的線程間通訊庫(kù)——Disruptor。在這篇文章中,我們將會(huì)看到一些更準(zhǔn)確的例子。什么種類(lèi)的項(xiàng)目使用Java開(kāi)發(fā)?在哪些領(lǐng)域內(nèi)Java是占統(tǒng)治地位的?現(xiàn)實(shí)生活中Java可以做什么項(xiàng)目?
現(xiàn)實(shí)生活中的Java應(yīng)用
在現(xiàn)實(shí)生活中,很多地方都用到了Java,從商業(yè)上的電子商務(wù)網(wǎng)站到安卓App,從科學(xué)應(yīng)用到經(jīng)濟(jì)應(yīng)用,如電子交易系統(tǒng),從游戲如《我的世界》到桌面應(yīng)用,如Eclipse、Netbeans、Interllij,從開(kāi)源類(lèi)庫(kù)到安卓的應(yīng)用。讓我們更詳細(xì)地看一下它們。
1)安卓應(yīng)用
如果你想知道Java可以做什么項(xiàng)目,你離這個(gè)目標(biāo)不是太遠(yuǎn)。打開(kāi)你的安卓手機(jī)和任何一款A(yù)pp,它們是使用Java語(yǔ)言、基于Google Android API(和JDK類(lèi)似)開(kāi)發(fā)的。數(shù)年的安卓支持已經(jīng)有了很大提高,并且很多Java程序員已經(jīng)成為了安卓app開(kāi)發(fā)者。安卓使用不同的JVM、不同的包,但是代碼仍是用Java寫(xiě)的。
2)金融業(yè)服務(wù)器的應(yīng)用
在金融服務(wù)中Java有很重要的應(yīng)用。很多全球投資銀行像高盛、花旗、中國(guó)銀行、建設(shè)銀行等其他銀行使用Java來(lái)開(kāi)發(fā)前臺(tái)和后臺(tái)電子交易系統(tǒng),提供解決方案和確認(rèn)系統(tǒng)以及數(shù)據(jù)處理項(xiàng)目等等。Java大多數(shù)用在開(kāi)發(fā)服務(wù)器端的應(yīng)用,幾乎不用來(lái)開(kāi)發(fā)前端,前端是從一個(gè)服務(wù)器接受數(shù)據(jù),然后處理它并把它發(fā)送給其他進(jìn)程。Java Swing對(duì)交易員來(lái)說(shuō)在開(kāi)發(fā)富客戶(hù)端的GUI方面還是很受歡迎的,但是現(xiàn)在C#很快地在這個(gè)領(lǐng)域獲得了市場(chǎng)占有率,Java Swing在這方面被擠壓喘不過(guò)氣來(lái)。
3)Java Web應(yīng)用
Java在電子商務(wù)和Web應(yīng)用領(lǐng)域也是有很多的應(yīng)用。現(xiàn)在有很多使用Spring MVC、struts2和類(lèi)似框架開(kāi)發(fā)的RESTful風(fēng)格的服務(wù)。甚至件一個(gè)簡(jiǎn)單的依賴(lài)Servlet、JSP和struts開(kāi)發(fā)的web應(yīng)用在各種各樣的政府項(xiàng)目中很受歡迎。醫(yī)療機(jī)構(gòu)和政府的很多部門(mén)如衛(wèi)生局、保險(xiǎn)部門(mén)、國(guó)防部等部門(mén)都有他們使用Java開(kāi)發(fā)的web應(yīng)用。
4)軟件工具
很多有用的軟件和開(kāi)發(fā)工具是用Java開(kāi)發(fā)的,Java可以做什么項(xiàng)目?例如Eclipse、InetelliJ、Netbeans IDE。我認(rèn)為大多數(shù)使用的桌面應(yīng)用也是用Java開(kāi)發(fā)的。所以有一段時(shí)間,Swing在開(kāi)發(fā)胖客戶(hù)端方面非常流行,尤其是在金融行業(yè)和投資銀行。現(xiàn)在,Java FX正逐漸受到歡迎,但是仍不能成為Swing的替代品,而C#在金融領(lǐng)域內(nèi)已經(jīng)幾乎代替了Swing。
5)交易應(yīng)用
第三方應(yīng)用交易應(yīng)用,作為更大的金融服務(wù)業(yè)的一部分也使用Java開(kāi)發(fā)。流行的交易應(yīng)用像Murex也是用Java開(kāi)發(fā)的,很多銀行都使用它們來(lái)連接前后端。
6)J2ME應(yīng)用
雖然iOS和Android的出現(xiàn)幾乎抹殺了J2ME的市場(chǎng),但是在低終端Nokia和使用J2ME的三星手機(jī)方面還是有很大的市場(chǎng)。有一段時(shí)間,安卓上可用的游戲、軟件幾乎全都是用MIDP、CLDC ,他們是J2ME平臺(tái)的一部分。J2ME在一些產(chǎn)品如藍(lán)光光碟、機(jī)頂盒等等。WhatsApp很受歡迎的一個(gè)原因是因?yàn)閷?duì)所有Nokia手機(jī)的J2ME平臺(tái)來(lái)說(shuō)是可用的。
7)嵌入式領(lǐng)域
在嵌入式領(lǐng)域,Java也是有很大應(yīng)用的。它展示了平臺(tái)是多么的強(qiáng)大,你僅需130Kb就能使用Java技術(shù)(在智能卡或者傳感器上)。起初,Java是為嵌入式設(shè)備而設(shè)計(jì)的。實(shí)際上,這是Java“一次編寫(xiě),到處運(yùn)行”初衷的一個(gè)部分,現(xiàn)在看起來(lái)獲得了成功。
8)大數(shù)據(jù)技術(shù)
Hadoop和其他大數(shù)據(jù)技術(shù)以這樣或那樣的方式使用著Java,例如Apache依賴(lài)Java的HBse和Accumulo(開(kāi)源)以及ElasticSearch。但是Java在該領(lǐng)域并不占統(tǒng)治地位,因?yàn)橛衅渌夹g(shù)如MongoDB是用C++開(kāi)發(fā)的。如果Hadoop或者ElasticSearch發(fā)展壯大的話(huà),Java在這個(gè)發(fā)展的領(lǐng)域有可能獲得主要的占有率
9)高頻率的交易領(lǐng)域
Java平臺(tái)在現(xiàn)代JIT技術(shù)的幫助下,它的性能特性已經(jīng)有了很大提升,傳送性能已經(jīng)到了C++水平。由于這個(gè)原因,Java在開(kāi)發(fā)高性能系統(tǒng)方面還是很受歡迎的,因?yàn)樾阅芘c機(jī)器語(yǔ)言相比稍差一些,但是你可以安全地折衷——輕便、可維護(hù)帶來(lái)更快地速度。對(duì)一個(gè)缺乏經(jīng)驗(yàn)的C++程序員來(lái)說(shuō),只能使應(yīng)用變得更慢和不可靠。
10)科學(xué)應(yīng)用
現(xiàn)在,對(duì)于科學(xué)應(yīng)用來(lái)說(shuō)Java經(jīng)常作為一個(gè)默認(rèn)的選擇,包括自然語(yǔ)言處理。這種現(xiàn)象的主要原因是Java更安全、輕便、易維護(hù),并且與C++和其他語(yǔ)言相比有更好的高級(jí)并發(fā)工具。
在九十年代,Java由于Applet在因特網(wǎng)領(lǐng)域占有重要地位,但是幾年后,由于Applet沙箱模式的各種安全問(wèn)題,Applet失去了風(fēng)頭。現(xiàn)在,桌面Java和Applet幾乎滅亡。Java作為軟件開(kāi)發(fā)公司默認(rèn)的開(kāi)發(fā)語(yǔ)言,在金融服務(wù)行業(yè)、投資銀行和電子商務(wù)web應(yīng)用領(lǐng)域獲得了很大應(yīng)用,任何學(xué)習(xí)Java的人員都會(huì)為自己贏得光明的未來(lái)。Java 8更加強(qiáng)了一個(gè)信念——在未來(lái)的幾年,Java在軟件開(kāi)發(fā)領(lǐng)域繼續(xù)占有重要地位。相信你看完這篇文章,應(yīng)該也會(huì)清楚的知道了Java可以做什么項(xiàng)目了。