本文由碼農(nóng)網(wǎng)– 小峰原創(chuàng)翻譯当船,轉(zhuǎn)載請(qǐng)看清文末的轉(zhuǎn)載要求沦零,歡迎參與我們的付費(fèi)投稿計(jì)劃来破!
如果你是一個(gè)初學(xué)者篮灼,剛剛開(kāi)始學(xué)習(xí)Java,你可能會(huì)想Java有什么用呢讳癌?除了Minecraft貌似也看不到其他用Java寫(xiě)的游戲穿稳,像Adobe Acrobat和Microsoft Office等桌面工具也不是用Java寫(xiě)的,甚至Linux和Windows操作系統(tǒng)也和Java無(wú)關(guān)晌坤,那么到底什么時(shí)候才需要用Java呢逢艘?
毋需糾結(jié),很多程序員都有這個(gè)困惑骤菠,或在學(xué)Java之前或已經(jīng)到了語(yǔ)言學(xué)習(xí)的一定程度它改。順便說(shuō)一句,我們可以通過(guò)在桌面安裝Java來(lái)得到有關(guān)Java使用的線索商乎,因?yàn)閿?shù)據(jù)庫(kù)會(huì)告訴你超過(guò)30億的設(shè)備上在運(yùn)行Java央拖,有沒(méi)有嚇一跳?
大多數(shù)的公司或多或少都在使用Java鹉戚。許多由Java所編寫(xiě)的服務(wù)器端應(yīng)用程序每天都要處理數(shù)以千萬(wàn)計(jì)的請(qǐng)求鲜戒。高頻率的交易app也是用Java寫(xiě)的,如LMAX的交易應(yīng)用程序抹凳,建立了一個(gè)開(kāi)創(chuàng)性的線程間通信庫(kù)遏餐,Disruptor。
本文將重點(diǎn)介紹各種用Java寫(xiě)的項(xiàng)目赢底,以及Java在現(xiàn)實(shí)世界中到底起了什么作用失都?
真實(shí)世界中的Java應(yīng)用程序
事實(shí)上Java在很多方面都有所涉及,從商業(yè)性質(zhì)的電子商務(wù)網(wǎng)站到Android應(yīng)用幸冻,從有關(guān)學(xué)術(shù)上的應(yīng)用程序到財(cái)務(wù)應(yīng)用粹庞,如電子交易系統(tǒng),從類似于Minecraft的游戲到桌面應(yīng)用程序如Eclipse洽损、Netbeans和IntelliJ庞溜,從開(kāi)源庫(kù)到J2ME應(yīng)用,等等等等碑定,舉不勝舉强缘。下面我將具體地講一下督惰。
1)Android應(yīng)用
如果你想知道哪里可以使用Java,那么遠(yuǎn)在天邊近在眼前旅掂。打開(kāi)你的安卓手機(jī)赏胚,它里面幾乎所有的應(yīng)用都是用Java語(yǔ)言寫(xiě)的,其谷歌Android API就像JDK一樣商虐。早在幾年前Android就已經(jīng)開(kāi)始風(fēng)靡全球觉阅,現(xiàn)在有很多的Java程序員就是安卓應(yīng)用開(kāi)發(fā)人員。順便說(shuō)一下秘车,Android使用的是不同的JVM和不同的包典勇,但是其代碼依然是用Java寫(xiě)的。
2)金融服務(wù)行業(yè)的服務(wù)器應(yīng)用程序
在金融服務(wù)行業(yè)Java是非常強(qiáng)大的叮趴。很多全球性的投資銀行如高盛割笙、花旗集團(tuán)、巴克萊銀行眯亦、渣打銀行等等都是使用Java來(lái)編寫(xiě)前端和后端的電子交易系統(tǒng)伤溉、結(jié)算和確認(rèn)系統(tǒng)、數(shù)據(jù)處理系統(tǒng)及其他妻率。Java還被廣泛應(yīng)用于寫(xiě)服務(wù)器端應(yīng)用程序乱顾,這些服務(wù)器端應(yīng)用大多沒(méi)有前端,直接從上游服務(wù)器接受數(shù)據(jù)宫静,經(jīng)過(guò)處理之后再發(fā)送給下游進(jìn)程走净。Java Swing曾用于為交易商創(chuàng)建胖客戶端的圖形用戶界面,但是現(xiàn)在C#迅速占領(lǐng)了Swing在各方面的份額孤里,Swing毫無(wú)招架之力伏伯。
3)Java Web應(yīng)用程序
Java在電子商務(wù)和Web應(yīng)用程序上也是個(gè)大頭。通過(guò)Spring MVC捌袜、Struts?2.0和類似框架舵鳞,你可以創(chuàng)建大量的RESTfull服務(wù)。即使是簡(jiǎn)單的基于web應(yīng)用的ervlet琢蛤、JSP和Struts,在各種政府項(xiàng)目中也非常受歡迎抛虏。許多政府博其、醫(yī)療、保險(xiǎn)迂猴、教育慕淡、國(guó)防以及其他部門(mén)都有他們自己用Java寫(xiě)的Web應(yīng)用程序。
4)軟件工具
很多用處非常廣泛的軟件和開(kāi)發(fā)工具都是用Java語(yǔ)言開(kāi)發(fā)的沸毁,如Eclipse峰髓、InetelliJ Idea和Netbans IDE傻寂。估計(jì)這些可能也是最為常用的用Java寫(xiě)的桌面應(yīng)用了。還有Swing在寫(xiě)胖客戶端携兵,特別是在金融服務(wù)業(yè)和投資銀行上曾經(jīng)也是廣為使用〖碴現(xiàn)在的話,Java FX越來(lái)越受歡迎徐紧,但是依然不能代替Swing静檬,而C#已經(jīng)幾乎完全取代了Swing曾經(jīng)在金融領(lǐng)域的地位。
5)交易應(yīng)用程序
第三方交易應(yīng)用程序并级,在金融服務(wù)行業(yè)非常龐大的一部分拂檩,其實(shí)也是用Java寫(xiě)的。Murex嘲碧,廣泛使用于許多銀行間的連接稻励,就是用Java寫(xiě)的。
6)J2ME應(yīng)用
雖然iOS和Android的出現(xiàn)差點(diǎn)吞并了J2ME的市場(chǎng)愈涩,但是還是有大量的低端諾基亞和三星手機(jī)望抽,在使用著J2ME。以前钠署,幾乎所有Android中的游戲糠聪、應(yīng)用程序都是用MIDP、CLDC以及部分J2ME平臺(tái)寫(xiě)入的⌒扯Γ現(xiàn)在我們依然能從很多產(chǎn)品舰蟆,如藍(lán)光、信用卡狸棍、機(jī)頂盒的上面看到J2ME的身影身害。Whats App之所以如此受歡迎的原因之一就是它的J2ME很強(qiáng)。
7)嵌入式空間
Java在嵌入式領(lǐng)域也占據(jù)著很大一部分份額草戈。因?yàn)樵谶@些容量有限的平臺(tái)上我們只需用130 KB就可以使用Java技術(shù)(智能卡和傳感器)塌鸯。最初的Java就是專為嵌入式設(shè)備而設(shè)計(jì)出來(lái)的。事實(shí)上唐片,嵌入式也是Java最初“write once丙猬,run anywhere”主旨的一個(gè)方面,現(xiàn)在看起來(lái)可謂是富有成效费韭。
8)大數(shù)據(jù)技術(shù)
Hadoop和其他大數(shù)據(jù)技術(shù)也或多或少地在使用Java技術(shù)茧球,例如Apache的基于Java的HBase和Accumulo(開(kāi)源),還有ElasticSearch星持。不過(guò)Java在此領(lǐng)域并不算是霸主抢埋,還有其他技術(shù)例如MongoDB則是用C ++寫(xiě)的。如果Hadoop或者ElasticSearch能夠不斷壯大的話,Java是非常有潛力吞下這塊大餅的揪垄。
9)高頻交易領(lǐng)域
Java平臺(tái)改進(jìn)了很多穷吮,不但有與時(shí)俱進(jìn)的JIT編譯器,還提供C ++水平的性能饥努。正是由于這個(gè)原因捡鱼,Java在編寫(xiě)高性能系統(tǒng)上也非常受歡迎。哪怕是一個(gè)沒(méi)有經(jīng)驗(yàn)的C ++程序員肪凛,如果對(duì)其代碼的安全性堰汉、便攜性和可維護(hù)性上不做太多要求,他就能“快速”地寫(xiě)出一個(gè)應(yīng)用程序來(lái)伟墙。
10)科學(xué)應(yīng)用程序
如今的Java依然成為默認(rèn)的科學(xué)應(yīng)用程序翘鸭,包括自然語(yǔ)言處理進(jìn)程。主要原因是為Java更安全戳葵、更輕便就乓、更易于維護(hù),相較于C++和其他任何語(yǔ)言拱烁,Java配備了更好的高水平并發(fā)性工具生蚁。
上世紀(jì)90年代,得益于互聯(lián)網(wǎng)上applet的盛行戏自,Java非常強(qiáng)大邦投。但是近年來(lái),由于各種各樣的安全問(wèn)題擅笔,applet漸漸走向了沒(méi)落志衣。如今桌面Java和applet幾乎已經(jīng)絕跡。而Java則默認(rèn)成為軟件產(chǎn)業(yè)鐘愛(ài)的應(yīng)用程序開(kāi)發(fā)語(yǔ)言猛们,并且在金融服務(wù)行業(yè)念脯、投資銀行和電子商務(wù)網(wǎng)站等多個(gè)領(lǐng)域被廣泛使用。我可以擔(dān)保弯淘,只要你能學(xué)好Java绿店,那工作的“錢(qián)”景一定美好。
譯文鏈接:http://www.codeceo.com/article/10-java-used.html
英文原文:Where is Java used in Real World?
翻譯作者:碼農(nóng)網(wǎng)– 小峰
[轉(zhuǎn)載必須在正文中標(biāo)注并保留原文鏈接庐橙、譯文鏈接和譯者等信息假勿。]