明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Java咖啡館——嘆咖啡(4)

[摘要]雖然Java技術(shù)是那么的誘人,前景也似乎非常光明,但是不是已經(jīng)有了C、C++等廣泛應(yīng)用并且大獲成功的語言了嗎?微軟不是又在大力推廣他們的.Net技術(shù)嗎?LISP、Prolog等人工智能語言在北美洲、...

    

  雖然Java技術(shù)是那么的誘人,前景也似乎非常光明,但是不是已經(jīng)有了C、C++等廣泛應(yīng)用并且大獲成功的語言了嗎?微軟不是又在大力推廣他們的.Net技術(shù)嗎?LISP、Prolog等人工智能語言在北美洲、歐洲的金融領(lǐng)域不是也有很大的應(yīng)用嗎?學(xué)習(xí)Java編程,是不是一個明智的選擇呢?
帶著這些問題,讓我們來看看Java的優(yōu)勢。

  1.免費(fèi)!

  Sun免費(fèi)提供用來開發(fā)Java應(yīng)用程序的一切,你不必付任何的版稅;蛟S你會將信將疑:資本家搞共產(chǎn)了?實際上,Sun在Java上的收益確實不大,遠(yuǎn)遠(yuǎn)比不過壟斷Java應(yīng)用服務(wù)器技術(shù)的IBM和BEA公司,似乎有替別人做嫁衣之嫌。對此,Sun董事長、總裁兼首席執(zhí)行官Scott McNealy是這樣解釋的:“Sun并沒有用Java賺錢,這就像使用英語不用上稅一樣,Sun并不通過Java本身來盈利,而是把Java應(yīng)用到了業(yè)務(wù)中!痹瓉硎欠砰L線釣大魚!

  與Java本身相比,Java API更是可貴的免費(fèi)財富。想使用Socket操作網(wǎng)絡(luò)?API中有;想連接到SQL數(shù)據(jù)庫?API中有;想給應(yīng)用程序一個漂亮的用戶界面?API中有;想要處理數(shù)字圖形、播放音樂、解析字符串或者創(chuàng)建數(shù)字簽名?API中全都有。

  最后,Java發(fā)展了那么多年,優(yōu)秀的Java教程、技術(shù)網(wǎng)站數(shù)不勝數(shù)。Sun本身就提供了免費(fèi)的教程,足夠自學(xué)的了。你可以在 http://java.sun.com/docs/books/tutorial/information/download.html下載這個教程。Bruce Eckel大師的名作Java編程思想(Thinking in java)更是不可不讀的佳作,許多狂熱愛好者甚至把它當(dāng)做圣經(jīng)一樣一頁一頁仔細(xì)揣摩。你可到作者的主頁http://www.BruceEckel.com免費(fèi)下載此書的電子版。機(jī)械工業(yè)出版社也有引進(jìn)臺灣技術(shù)作家候捷的中譯本,可惜不是免費(fèi)。

  或許你會問,有了那么多優(yōu)秀的教程,還要你這個Java咖啡館干什么呢?嗯哼,雖然那些教程和技術(shù)文章是如此優(yōu)秀,但并不適合初學(xué)者。Java咖啡館目的就在于幫助你打好Java技術(shù)的基礎(chǔ),掌握J(rèn)ava技術(shù)的主要脈絡(luò),幫助你邁出進(jìn)入Java世界的第一步!

  2.跨平臺

  “一次編寫,隨處運(yùn)行”,Java系統(tǒng)可以運(yùn)行在不同的操作系統(tǒng)和硬件上。隨著Linux的持續(xù)增長以及Mac OSX完全支持Java技術(shù),跨平臺的特性變得越來越有分量。

  由于Java跨平臺,Java API自然也是平臺統(tǒng)一的。對程序員而言,沒有比統(tǒng)一的API函數(shù)能夠讓他們更欣慰的了??已經(jīng)有了圓形的輪子,何必再從頭發(fā)明輪子呢?我們拿Java API與C++的類庫相比便可以知道它的可貴之處。有Windows編程經(jīng)驗的C++程序員肯定經(jīng)歷過被MFC(Microsoft Foundation Classes,微軟基類庫)折磨的日子,學(xué)習(xí)曲線陡峭,沒有若干個月根本無法開始生產(chǎn),一段時間不接觸遺忘率又高。據(jù)說,即使在微軟公司內(nèi)部,除了MFC開發(fā)小組,誰都不樂意用它。即便你熟悉了MFC,能夠順利開發(fā)Windows應(yīng)用程序,如果你要編寫一個Linux應(yīng)用程序,MFC又派不上用場了,你必須學(xué)習(xí)Linux下C++開發(fā)的一套庫函數(shù)。還有UNIX、FreeBSD、Mac OS……你學(xué)得過來嗎?反觀Java API,操作系統(tǒng),你愛誰是誰,只要編寫一次便可隨處運(yùn)行!

  3.在學(xué)術(shù)界獲得了強(qiáng)有力的支持

  由于免費(fèi)、跨平臺、Java語言本身技術(shù)先進(jìn),在高校中,Java 已經(jīng)成為許多學(xué)科研究、課程和計算的首選語言,用Java做上機(jī)作業(yè),一般都是鼓勵的。據(jù)我所知,北大、清華許多院系的研究生入學(xué)考試都可以用Java語言答題。實際上,用Java來完成這些工作,大多數(shù)情況下要比用C或其他語言簡潔得多,你可以把注意力集中在算法等核心部分,從而獲得更高分?jǐn)?shù)。

  掌握J(rèn)ava技術(shù)的學(xué)生一般有更多的工作機(jī)會課余兼職,拿到更高報酬,不但減輕家里的負(fù)擔(dān),更可以讓自己早日進(jìn)入社會鍛煉。所以,如果你還在求學(xué),學(xué)習(xí)Java,一定沒錯的。

  4.簡單

  與C++等語言相比較,語法上Java是簡單的。

  謝天謝地,Java提供了垃圾回收機(jī)制。以往C++的開發(fā)中,最容易出錯誤的地方便是內(nèi)存管理,申請的內(nèi)存用完以后必須釋放,否則可使用的內(nèi)存資源越來越少,直至耗盡系統(tǒng)資源而造成死機(jī)。而Java系統(tǒng)中,你可以任意申請內(nèi)存,Java系統(tǒng)會在適當(dāng)?shù)臅r候自動釋放無用的內(nèi)存資源。這個神奇的機(jī)制叫做“垃圾回收”,節(jié)約了許多調(diào)試錯誤的時間。

  在Java中,要寫出低劣的代碼也不是一件容易的事情。一方面,垃圾回收機(jī)制堵住了內(nèi)存泄漏的可能性,另一方面就是異常捕捉機(jī)制,它強(qiáng)迫你做最壞的打算。編寫程序時,難免會遇到一些意外,比如文件無法打開、網(wǎng)絡(luò)讀取失敗等特殊情況。在C++等語言中是依靠返回值來判斷的,如果一句句地檢查返回值,那實在是太麻煩了。從而,程序員習(xí)慣性地忽略返回值的檢查,并安慰自己一切都會好起來的。這便埋下了隱患。在Java中,Java的方法可以拋異常,而你必須應(yīng)答異常,即使你不想進(jìn)行任何操作。比如編寫打開文件的代碼,你不得不響應(yīng)異常以防意外發(fā)生,否則程序根本不能夠通過編譯。未雨綢繆,使得Java系統(tǒng)更穩(wěn)健。

  5.企業(yè)應(yīng)用的成熟平臺

  這是Java技術(shù)目前最活躍的兩大領(lǐng)域之一。我們在前面Java技術(shù)介紹中已經(jīng)提到了不少,這里僅關(guān)注跟我們切身相關(guān)的優(yōu)勢。

  Java技術(shù)的企業(yè)應(yīng)用旨在提升企業(yè)競爭力,所以Java技術(shù)受到了企業(yè)的欣賞,市場份額是同類技術(shù)中最大的。同時,Java開放標(biāo)準(zhǔn),所以供應(yīng)商眾多。市面上有許多的應(yīng)用服務(wù)器、工具與構(gòu)件可以選擇,從高端的BEA WebLogic、IBM WebSphere等商業(yè)軟件,到Tomcat、JBoss等開源的免費(fèi)工具,一應(yīng)俱全。作為Java技術(shù)的初學(xué)者,不需要任何花費(fèi)就能夠進(jìn)行Java企業(yè)應(yīng)用的自我培訓(xùn),以后若參與Java的商業(yè)項目開發(fā),便可以無縫地把軟件移植到高端的商業(yè)平臺上去。反觀.Net,想免費(fèi)自學(xué),不盜版是不可能的啦。

  最后談?wù)凧ava和Web服務(wù)。Web服務(wù)是軟件互操作歷史上的里程碑,是技術(shù)發(fā)展的重要方向,是你絕不能不了解的技術(shù)。Sun公司是Java語言的發(fā)明者,而作為一個開放的跨平臺的技術(shù)體系,Java在Web服務(wù)的開發(fā)方面起著非常重要的作用。Sun被接納為促進(jìn)Web服務(wù)交互組織WS-I的董事成員后,作為活躍的參與者和業(yè)界的領(lǐng)導(dǎo)者,對Web服務(wù)互操作性的促進(jìn),有著相當(dāng)重要的意義,也為Java技術(shù)的含金量加上了關(guān)鍵的砝碼。

  6.無線應(yīng)用

  這是Java技術(shù)目前最活躍的另一個領(lǐng)域,旨在提供更多、更方便的個性化服務(wù)的Java手機(jī)應(yīng)用。未來幾年內(nèi),勢必將出現(xiàn)移動通訊運(yùn)營商和移動設(shè)備應(yīng)用軟件的巨大商機(jī)和激烈競爭,并且該趨勢很可能與電子政務(wù)、電子商務(wù)等其他發(fā)展相互影響。Java在手機(jī)市場的專有性和Java本身的開放性和標(biāo)準(zhǔn)性,使得越來越多的企業(yè)加入了Java陣營。

  中國也不例外。2003年James Gosling博士首次來到中國,其中重要的一項工作便是與中國聯(lián)通結(jié)盟。

黃糖故事

  Java之父??James Gosling博士

  James Gosling博士以“Java技術(shù)之父”聞名于世。他是Java技術(shù)的創(chuàng)始人,作為Sun研究院院士,親手設(shè)計了Java語言,完成了Java技術(shù)的原始編譯器和虛擬機(jī)。在他的帶領(lǐng)下,Java現(xiàn)已成為互聯(lián)網(wǎng)的標(biāo)準(zhǔn)編程模式以及分布式企業(yè)級應(yīng)用的事實標(biāo)準(zhǔn),其跨平臺的技術(shù)優(yōu)勢為網(wǎng)絡(luò)計算帶來了劃時代的變革。目前,Gosling博士積極致力于軟件開發(fā)工具的研究,以使軟件開發(fā)工具的功能更強(qiáng)大,更容易為開發(fā)人員所使用,確保應(yīng)用、服務(wù)開發(fā)的迅速完成。

  實際上,手機(jī)游戲開發(fā)也是一項不錯的職業(yè)與機(jī)遇,成功的例子已經(jīng)不在少數(shù)哦。

  7.開放的Java社團(tuán)??Java Community Process,JCP

  JCP是一個讓Java出名的功臣。JCP創(chuàng)造了一個開放型論壇,讓同好在此交換意見,探索、定義新的平臺,群策群力。Java歡迎競爭,因為只有這樣才能最大限度地提高領(lǐng)域內(nèi)的技術(shù),這點(diǎn)與對手微軟.Net技術(shù)大相徑庭。在Java的舞臺上有很多演員,任何人都可以參與到JCP的過程中去,幫助Sun決定Java的發(fā)展和未來,同時也挑戰(zhàn)自己的影響力。從而,你可以發(fā)現(xiàn)Java世界中新的名詞層出不窮,遠(yuǎn)遠(yuǎn)走在規(guī)范之前。而在微軟.Net技術(shù)的舞臺上,你只能看到一個演員,那就是微軟自己。

  8.開源組織或者非盈利機(jī)構(gòu)的支持

  開源組織是無政府主義的夢想??沒有政體,沒有所屬權(quán),言論與行動自由,僅僅依靠渴望共享與交流的信仰及無私奉獻(xiàn)來維系。Java世界中,開源組織與非盈利機(jī)構(gòu)發(fā)揮到了極致,許多出色的工具都出自它們之手。比如JUnit、Cactus、Tomcat、Struts、JBoss、Eclipse、ANT、Xerces、Hibernate、Axis、AspectJ等等,許多工具還會出現(xiàn)在我們的咖啡館中,扮演重要的角色。

  Java世界中,便宜無好貨絕對不成立,這些工具擁有足以和商業(yè)軟件媲美的質(zhì)量,很多商業(yè)IDE還集成了這些工具。對Java程序員而言,生活不單單會變得輕松,更重要的,你能夠看到希望,有為大家貢獻(xiàn)自己力量的機(jī)會!

五、小結(jié)

  看到這里,如果你能夠有學(xué)習(xí)Java技術(shù)的沖動,我也心滿意足了。選擇一門語言是困難的,你必須有所取舍。即使你是堅定的微軟技術(shù)迷,有時間也歡迎到這個咖啡館小坐一會兒,嘆一嘆Java這別樣的風(fēng)情。