1.免費!
Sun(雖然現在已被甲骨文收購但我還是喜歡說Sun)免費提供用來開發Java應用程序的一切,你不必付任何的版稅。或許你會將信將疑:資本家搞共產了?實際上,Sun在Java上的收益確實不大,遠遠比不過壟斷Java應用服務器技術的IBM和BEA公司,似乎有替別人做嫁衣之嫌。對此,Sun董事長、總裁兼首席執行官Scott McNealy是這樣解釋的:“Sun並沒有用Java賺錢,這就像使用英語不用上稅一樣,Sun並不通過Java本身來盈利,而是把Java應用到了業務中。”原來是放長線釣大魚!
與Java本身相比,Java API更是可貴的免費財富。想使用Socket操作網絡?API中有;想連接到SQL數據庫?API中有;想給應用程序一個漂亮的用戶界面?API中有;想要處理數字圖形、播放音樂、解析字符串或者創建數字簽名?API中全都有。
最後,Java發展了那麼多年,優秀的Java教程、技術網站數不勝數。Bruce Eckel大師的名作Java編程思想(Thinking in Java)更是不可不讀的佳作,許多狂熱愛好者甚至把它當做聖經一樣一頁一頁仔細揣摩。你可到作者的主頁http://www.BruceEckel.com免費下載此書的電子版。機械工業出版社也有引進台灣技術作家候捷的中譯本,可惜不是免費。
或許你會問,有了那麼多優秀的教程,還要你這個Java咖啡館干什麼呢?嗯哼,雖然那些教程和技術文章是如此優秀,但並不適合初學者。Java咖啡館目的就在於幫助你打好Java技術的基礎,掌握Java技術的主要脈絡,幫助你邁出進入Java世界的第一步!
2.跨平台
“一次編寫,隨處運行”,Java系統可以運行在不同的操作系統和硬件上。隨著Linux的持續增長以及Mac OSX完全支持Java技術,跨平台的特性變得越來越有分量。
由於Java跨平台,Java API自然也是平台統一的。對程序員而言,沒有比統一的API函數能夠讓他們更欣慰的了——已經有了圓形的輪子,何必再從頭發明輪子呢?我們拿Java API與C++的類庫相比便可以知道它的可貴之處。有Windows編程經驗的C++程序員肯定經歷過被MFC(Microsoft Foundation Classes,微軟基類庫)折磨的日子,學習曲線陡峭,沒有若干個月根本無法開始生產,一段時間不接觸遺忘率又高。據說,即使在微軟公司內部,除了 MFC開發小組,誰都不樂意用它。即便你熟悉了MFC,能夠順利開發Windows應用程序,如果你要編寫一個Linux應用程序,MFC又派不上用場了,你必須學習Linux下C++開發的一套庫函數。還有UNIX、FreeBSD、Mac OS……你學得過來嗎?反觀Java API,操作系統,你愛誰是誰,只要編寫一次便可隨處運行!
3.在學術界獲得了強有力的支持
由於免費、跨平台、Java語言本身技術先進,在高校中,Java 已經成為許多學科研究、課程和計算的首選語言,用Java做上機作業,一般都是鼓勵的。據我所知,北大、清華許多院系的研究生入學考試都可以用Java語言答題。實際上,用Java來完成這些工作,大多數情況下要比用C或其他語言簡潔得多,你可以把注意力集中在算法等核心部分,從而獲得更高分數。
掌握Java技術的學生一般有更多的工作機會課余兼職,拿到更高報酬,不但減輕家裡的負擔,更可以讓自己早日進入社會鍛煉。所以,如果你還在求學,學習Java,一定沒錯的。
4.簡單
與C++等語言相比較,語法上Java是簡單的。
謝天謝地,Java提供了垃圾回收機制。以往C++的開發中,最容易出錯誤的地方便是內存管理,申請的內存用完以後必須釋放,否則可使用的內存資源越來越少,直至耗盡系統資源而造成死機。而Java系統中,你可以任意申請內存,Java系統會在適當的時候自動釋放無用的內存資源。這個神奇的機制叫做“垃圾回收”,節約了許多調試錯誤的時間。
在Java中,要寫出低劣的代碼也不是一件容易的事情。一方面,垃圾回收機制堵住了內存洩漏的可能性,另一方面就是異常捕捉機制,它強迫你做最壞的打算。編寫程序時,難免會遇到一些意外,比如文件無法打開、網絡讀取失敗等特殊情況。在C++等語言中是依靠返回值來判斷的,如果一句句地檢查返回值,那實在是太麻煩了。從而,程序員習慣性地忽略返回值的檢查,並安慰自己一切都會好起來的。這便埋下了隱患。在Java中,Java的方法可以拋異常,而你必須應答異常,即使你不想進行任何操作。比如編寫打開文件的代碼,你不得不響應異常以防意外發生,否則程序根本不能夠通過編譯。未雨綢缪,使得 Java系統更穩健。
5.企業應用的成熟平台
這是Java技術目前最活躍的兩大領域之一。我們在前面Java技術介紹中已經提到了不少,這裡僅關注跟我們切身相關的優勢。
Java技術的企業應用旨在提升企業競爭力,所以Java技術受到了企業的欣賞,市場份額是同類技術中最大的。同時,Java開放標准,所以供應商眾多。市面上有許多的應用服務器、工具與構件可以選擇,從高端的BEA WebLogic、IBM WebSphere等商業軟件,到Tomcat、JBoss等開源的免費工具,一應俱全。作為Java技術的初學者,不需要任何花費就能夠進行Java企業應用的自我培訓,以後若參與Java的商業項目開發,便可以無縫地把軟件移植到高端的商業平台上去。反觀.Net,想免費自學,不盜版是不可能的啦。
最後談談Java和Web服務。Web服務是軟件互操作歷史上的裡程碑,是技術發展的重要方向,是你絕不能不了解的技術。Sun公司是Java 語言的發明者,而作為一個開放的跨平台的技術體系,Java在Web服務的開發方面起著非常重要的作用。Sun被接納為促進Web服務交互組織WS-I的董事成員後,作為活躍的參與者和業界的領導者,對Web服務互操作性的促進,有著相當重要的意義,也為Java技術的含金量加上了關鍵的砝碼。
6.無線應用
這是Java技術目前最活躍的另一個領域,旨在提供更多、更方便的個性化服務的Java手機應用。未來幾年內,勢必將出現移動通訊運營商和移動設備應用軟件的巨大商機和激烈競爭,並且該趨勢很可能與電子政務、電子商務等其他發展相互影響。Java在手機市場的專有性和Java本身的開放性和標准性,使得越來越多的企業加入了Java陣營。
中國也不例外。2003年James Gosling博士首次來到中國,其中重要的一項工作便是與中國聯通結盟。
黃糖故事
Java之父——James Gosling博士
James Gosling博士以“Java技術之父”聞名於世。他是Java技術的創始人,作為Sun研究院院士,親手設計了Java語言,完成了Java技術的原始編譯器和虛擬機。在他的帶領下,Java現已成為互聯網的標准編程模式以及分布式企業級應用的事實標准,其跨平台的技術優勢為網絡計算帶來了劃時代的變革。目前,Gosling博士積極致力於軟件開發工具的研究,以使軟件開發工具的功能更強大,更容易為開發人員所使用,確保應用、服務開發的迅速完成。
實際上,手機游戲開發也是一項不錯的職業與機遇,成功的例子已經不在少數哦。
7.開放的Java社團——Java Community Process,JCP
JCP是一個讓Java出名的功臣。JCP創造了一個開放型論壇,讓同好在此交換意見,探索、定義新的平台,群策群力。Java歡迎競爭,因為只有這樣才能最大限度地提高領域內的技術,這點與對手微軟.Net技術大相徑庭。在Java的舞台上有很多演員,任何人都可以參與到JCP的過程中去,幫助Sun決定Java的發展和未來,同時也挑戰自己的影響力。從而,你可以發現Java世界中新的名詞層出不窮,遠遠走在規范之前。而在微軟.Net技術的舞台上,你只能看到一個演員,那就是微軟自己。 還有現在的Java技術交流論壇,J道等等。。。都是很不錯錯的開放社區。
8.開源組織或者非盈利機構的支持
開源組織是無政府主義的夢想——沒有政體,沒有所屬權,言論與行動自由,僅僅依靠渴望共享與交流的信仰及無私奉獻來維系。Java世界中,開源組織與非盈利機構發揮到了極致,許多出色的工具都出自它們之手。比如JUnit、Cactus、Tomcat、Struts、JBoss、 Eclipse、ANT、Xerces、Hibernate、Axis、ASPectJ等等,許多工具還會出現在我們的咖啡館中,扮演重要的角色。
Java世界中,便宜無好貨絕對不成立,這些工具擁有足以和商業軟件媲美的質量,很多商業IDE還集成了這些工具。對Java程序員而言,生活不單單會變得輕松,更重要的,你能夠看到希望,有為大家貢獻自己力量的機會!