1.免費!
Sun(雖然現(xiàn)在已被甲骨文收購但我還是喜歡說Sun)免費提供用來開發(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ù)中。”原來是放長線釣大魚!
與Java本身相比,Java API更是可貴的免費財富。想使用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ù)。Bruce Eckel大師的名作Java編程思想(Thinking in java)更是不可不讀的佳作,許多狂熱愛好者甚至把它當(dāng)做圣經(jīng)一樣一頁一頁仔細(xì)揣摩。
或許你會問,有了那么多優(yōu)秀的教程,還要你這個Java咖啡館干什么呢?雖然那些教程和技術(shù)文章是如此優(yōu)秀,但并不適合初學(xué)者。Java咖啡館目的就在于幫助你打好Java技術(shù)的基礎(chǔ),掌握J(rèn)ava技術(shù)的主要脈絡(luò),幫助你邁出進(jìn)入Java世界的第一步!
2.跨平臺
“一次編寫,隨處運行”,Java系統(tǒng)可以運行在不同的操作系統(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),你愛誰是誰,只要編寫一次便可隨處運行!
3.移動應(yīng)用
這是Java技術(shù)目前最活躍的另一個領(lǐng)域,旨在提供更多、更方便的個性化服務(wù)的Java手機(jī)應(yīng)用。未來幾年內(nèi),勢必將出現(xià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ā)的迅速完成。
4.開源組織或者非盈利機(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ī)會!
5.簡單易學(xué)
與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++等語言中是依靠返回值來判斷的,如果