我一直都懷疑被那些自以為博學的人不停討論的最熱門的話題java™ 。您可以用一分為二的觀點來對待這些問題,最終你被迫相信 Java 將帶來世界和平并能償還美國的國債或者它完全是在浪費時間。我經常想涉足這些討論,但我還是盡量避而不談,直到我能夠提供廣博的觀點。
設想一下當我從圣誕節假期歸來時發現我的下一個任務是需要學習 Java 時,我是多么的驚慌(或者應當說成是懼怕)。你能說“留心你想要得到的東西,因為你可能正在得到它”嗎?但是,我很興奮的發現學習比我預計的要輕易。Java 是面向對象的設計方法,作為一個長期在復雜凌亂的 C++ 世界掙扎的 C 程序員,經過多年的面向對象的編程,作為一種回報我發現確實學到了一些原理和技術。的確,我承認我是一個 OLE 熱衷者(閱讀過 Nigel Tompson 的系列文章的 MSDN 訂閱者都會理解我的意思),至少在產品代碼遷移方面如此。但是,漸漸的我離開了無序的行列,至少在考慮 Java 時是這樣。
我的第一個決定??并且是一個正確的決定??避免了選擇類似于《利用你五天刷牙的時間學會 Java》這樣的書。假如你最近到過書店的計算機技術部分(假如你可以外出),會知道那里有許多 Java 書籍。為了縮小你的查找范圍,你可以選擇適合自己的書。因為我有豐富的 C 程序經驗,我找到一些適用于 C 程序員學習 Java 的書。例如,找到一本David Flanagan 所著的《簡單的Java》(Java in a Nutshell 專用系統參考 1996年12月。ISBN:1556592183)。我還買了一本Addison-Wesley 出的《Java 系列》(參見http://www.awl.com/cp/javaseries/),這些書的確十分有用,但大部分都是編程參考。按照我自己通過實踐進行學習的習慣,沒過多久我就熟悉了。我開始時編寫示例 Applet 程序,這在當時看來是很有用的,但很快我就熟悉到自己的知識很有限需要深入的學習。于是我開始瀏覽微軟的Java 開發者 Web 站點和Sun MicroSystems 站點, 并且在下列站點也找到一些資料(這不是一個全面的列表):
? Java 開發者 (最好的Java 編程疑問與解答)
? “Java Jolt” (Web Developer.com 的指導專欄周刊)
? “Digital EsPResso” (Java 郵件列表摘要周刊和Mentor Software Solutions 的新聞組活動)
? JavaWorld (每月更新的關于 Java 社團的IDG 雜志)
? Javology (每月更新的 Java 新聞和在線見解e-zine)
權威人士一些關于 Java 的觀點讓我感到鼓舞,我又回到原先起步階段的 Applet 示例中,但是很快就又轉移了視線,開始閱讀 Sun Java 開發工具(JDK)的 Applet 示例源程序??可以從http://www.javasoft.com/nav/developer/index.Html 下載。自然,當我開始看實現系統類的源代碼時,覺得閱讀示例源程序更有趣。
我的 Java 學習方法實踐證實是比較成功的。由于正確的選擇了適合自己 C 編程背景的啟蒙書籍,我對 Java 有了相當充分深入的理解。學習的第二階段通過到 Web 站點瀏覽,我又把握了關于 Java 開發工具和相關問題的最新信息。經過閱讀源代碼,使我對 Java 的結構和實現有了本質的熟悉。
關于 Java 系列文章的第一篇將幫助每個 C 程序員解答“Java 可移植性的要害是什么?”這個問題。我將重點介紹設計方面使 Java 應用程序比其他技術在不同計算機平臺之間有更好的可移植性的原因。但是,假如你想徹底理解這一切,Java 良好的可移植性內部的理論將是你學習的一個重點。我看到在 Java 新聞組中有大量的布告,反映出實際使用時不斷出現的真正的問題。當然,人們也在抱怨 Java 的兼容性問題,我將從根本上解釋這一問題。假如你認為該主題的文章有幫助,我將很感激你能告訴我(我的 e-mail 地址是michaele@microsoft.com )。
關于可移植性
提供創建高可移植性應用程序的便利是 Java 設計體系的核心要素。我的大部分編程經驗是關于 C 語言的,八十年代當我開始自己的計算機游戲程序員生涯時,我就開始與可移植代碼問題朝夕相伴。我所在的游戲公司常期支持幾個不同的平臺,包括Apple II、C64、Mac、Amiga、Atari ST 和 PC??使用游戲控制臺,但未能成功。因此,“移植儀定”仿佛成了我的名字。當我在這些平臺之間移植游戲時我學到了重要的一課:不存在完全可移植的代碼;僅僅是可移植代碼多和少的問題。我同時也把握了一個可以產生盡可能多的可移植代碼的方法。對我們來講,這個方法包括盡可能多的用 C 語言編寫代碼,使用我們稱為虛擬機的技術??我們移植到不同平臺時所使用的基本庫代碼,該庫充當運行我們的游戲程序所需的虛擬圖形和用戶輸入庫。因此,從我個人來之不易的創建可移植軟件經驗,我能證實 Java 通常使用可靠性好的技術來生成高可移植性的代碼更輕易。
新聞熱點
疑難解答