首頁
中文書目錄
原文書目錄
 站內快速搜尋
資源中心
Book Series
Special Interest













■好消息,歐萊禮書籍已重新鋪貨至各大書局及網路書店,歡迎讀者選購       ■歡迎各院校採用歐萊禮書籍,學校團購請洽校園服務團隊

[書籍導讀]

Java 錦囊妙技


幫個忙,別站在書店看這本書,也別躺在床上。

如果可能,我建議你至少準備兩台電腦,其中一台安裝 Linux。當然,如果你對網路程式沒興趣,那麼,一台安裝了 J2SDK 與 Javadoc 的電腦(任何作業系統皆可)也就夠了。

本書定位為 Java 初學者的「第二本書」。這表示你應該已經至少看過一本以上的 Java 入門書。如果你沒有實際程式寫作經驗,本書可以提供部份幫忙。然而,若要有能「欣賞」本書內容的功力,你最好有寫過大程式的寫作經驗。事實上,我發現這本書最適合那些有豐富的 C/C++ 程式設計經驗,而又剛看完一本 Java 入門書的讀者。

本書是以「問題導向」的原則來寫作、編排。我覺得這樣的編排方式很適合用來強化 Java 初學者的信心。雖然 Java 不是那種『There are more than one way to do it』的語言(例如:Perl),但是 Java 2 API 實在太龐大了!這表示你有太多選擇,而每一種選擇都有其特殊考量、或是專用於應付特殊情況、或是不同的效果;而本書可幫你作出選擇。比方說,當你需要將物件存入一個陣列,到底應該使用 VectorArrayList?當你需要多工作業時,應該繼承 Thread 類別或是實作 Runnable 介面?在處理 I/O 時,何時應該使用 I/O 串流,而怎樣的狀況下又應該使用 Reader/Writer?在處理 XML 資料時,到底應該使用 SAX 抑或是 DOM?

除了解決疑惑之外,本書也探討了一些比較少為人知的 Java 進階題材,像是 JNI、RMI、Introspection、JavaMail API、正規式、JWS ... 等等。雖然在 Internet 上不難找到這些題材的資訊,但是普遍缺乏實際可練習的範例,或是可以當成「樣本」的程式架構。

這是一本具有高度實用價值的書,一本你應該放在電腦邊書架上的書。本書不僅有示範性質的範例,更有「高可塑性」的程式。以我自己為例,我就曾經利用範例 19-8 的 MailLister 程式為骨架,寫了一個 SpammerTracer 程式,幫我追蹤、記錄 spammer 的來源。後來,我又利用了第四章的 REmatch 程式,為我的 SpammerTracer 增加了過濾垃圾信的能力。既然我能做到,相信你也能!

關於註解
翻譯是一件很堅辛的工作,也是很痛苦的過程。對於篇幅這麼大、題材範圍如此廣泛的書,實非個人之力可以勝任。幸好,有萬惠棻小姐的幫忙,本書才得以完成。本書第五章到第十四章,以及第二十一章,出自萬小姐的手筆。我個人負責其餘章節的翻譯,以及全書的校閱。

在翻譯過程中,對於一些值得額外說明的地方,我們會加上註解,這些註解算是萬小姐與我的個人「創作」,為了釐清功勞(以及「責任」)歸屬,也為了讓讀者搞清楚是誰在說話,我們以不同的註解符號標示不同人寫的註解。作者的註解以【註】表示。【譯註】是萬惠棻小姐的註解。【編註】是敝人在下小弟我的註解。這些註解純粹是為了幫助讀者的閱讀。對於博聞的讀者而言,這些註解或許顯得有些累贅。不過,我們認為寫註解是一種負責任的表現,因為那至少可證明我們真的非常用心翻譯這本書。

讀者迴響
本書中文版修正了 2003 年四月之前在原文書找到的所有錯誤。另一項不得不提的差異,是中文版本身的錯誤。儘管我花了很多功夫確保本書的翻譯品質,不過,不管再怎麼嚴謹的校閱程序,我仍不敢保證本書絕無瑕疵,我只能說,本書的嚴重錯誤已經降到最低。如果讀者認為本書譯文有任何模稜兩可或交代不清之處,或是有任何錯誤(漏字、錯字、贅字、技術描述 ...),或是您有任何能使本書更好的建議,我非常歡迎讀者提供批評指教。

台灣歐萊禮公司特地設置 bookquestions@oreilly.com.tw 信箱,供讀者提出對於書籍內容的疑惑或建議。我很珍惜每一位讀者的任何指教與意見。對於讀者提出的任何糾正,在經過查證之後,我會公佈在本書中文網頁的勘誤表,並於下一刷時改正。如果您對本書的內容有疑問,在您回報錯誤之前,請先查閱本書中文網頁上的勘誤表,看看是不是已經有人發現了。

雖然我們非常歡迎讀者提供任何批評指教,但是請原諒我們畢竟人力有限,請不要將歐萊禮當成你的顧問公司,如果你的問題與書籍內容無關,請原諒我們無法一一回答。我發現有許多讀者要求我們回答工作上的問題,比方說,寫信問我們:『如何在 Linux 平台上安裝 Oracle?』,或是『我的程式出現 OOXX 的錯誤訊息 ...』(並附上一個好幾千行的程式),或是『如何設定 Tomcat server ...』。一般而言,如果我有空,也知道如何處理,而且能用短短的 email 回答,我會考慮回答這類問題。否則,你可能只會收到一封『請參考某某書或 http://SomeWhereOutThere』或『Sorry ...』的回信。

關於範例程式
本書所有範例程式皆可從 O'Reilly 總公司、台灣分公司(歐萊禮)、或作者的個人網站下載:

O'Reilly 美國總公司:http://examples.oreilly.com/javacook/
O'Reilly 台灣分公司:http://www.oreilly.com.tw/chinese/Java/javacook.html
作者個人網站:http://javacook.darwinsys.com/

作者個人網站與 O'Reilly 美國總公司網站所提供的版本,是作者提供的版本,這些範例只經過 J2SDK 1.3 測試,我放在 O'Reilly 台灣分公司的版本,是經過我個人實際測試、修正的版本,全部都經過 Java 1.4(Sun 與 Blackdown)測試。

在測試本書網路範例程式時,我建議讀者最好至少準備兩台電腦,如果可能,我強烈建議讀者至少準備一部 Linux 系統當伺服平台,因為有些範例需要搭配 Linux 系統內建的 server,像是 time、daytime、IMAP、SMTP 等等,而這些 server 都是 Windows 平台不提供的。不過,即使沒有 Linux server 配合,讀者其實也可以順利測試這些範例,那就是自己動手寫出 Java server - 相信我,這絕對不難,因為作者已經提供了寫出這些 server 的必備知識與工具,甚至有雛型程式可供摹擬。換個角度想,這不正就是這些章節的主題嗎?讀者剛好可藉此驗證自己的學習成果。

林長毅
西元 2003年五月一日
lin@oreilly.com.tw

| 首頁 | 聯絡我們 |
© 2009, O'Reilly Media, Inc. Taiwan Branch