你曾經參加過SCJP認證測驗嗎?若你體驗過,也許會覺得測驗題庫的設計不盡人道,要求應試者的思考,必須如同Java Compiler般地正確。不過可別意外,還有更變態的考題在這裡!

Joshua Bloch與Neal Gafter兩位作者自1996年即與Java為伍,曾任職於昇陽投入發展Java平臺的專案,均親身參與JDK1.4,1.5的設計工作,所以對Java平臺核心運作原理及特性有十分專業的了解。長年的經驗累積不少有趣的問題,讓他們發現許多Java不為人知的特性,故於2001突發奇想,試著以問題導向的方式介紹Java這項技術。

在2001年首次在舊金山Oracle Open World會議上以脫口秀(Code Talk)方式進行技術研討簡報,引起當時廣泛迴響,並獲得觀眾票選該研討會之最佳表演獎(Best-in-Show)。之後經過不斷地充實及改良內容,分別在JavaOne以及全球各地無數的研討會中發表,並在Linux Magazine中以專文方式發表,Java Puzzlers已成為兩位作者的代名詞。

問題導向架構,解題成為一種樂趣
本書內容主要探討以Java技術開發時會面臨到的陷阱及難題。作者提出這些並不是想要抹黑Java,而是想讓Java愛好者更能了解Java的特性,不會因為不當的誤用,而造成無法預期的後果。作者Joshua Bloch的另一個暢銷著作《Effective Java》也與本書類型相似,都是深入JDK核心,探討如何寫好Java程式而撰寫。

全書分別依Java核心架構之範圍分成十個主題,共包含九十五個難題,從表示式、字元字串及文字處理、迴圈、例外處理、Class的設計、函式庫的使用、到最後的進階課題。每個難題都針對一個特定的主題,伴隨著一段不算長的程式碼,試著探究Java語言的核心本質,讓讀者試著思考結果為何。最後的附錄整理了本書所有難題所應留意的陷阱及提示,尤其當你做完所有難題之後,再來閱讀這部份則會覺得回味無窮,也算是本書的重點整理。

如果你曾經考過SCJP認證,會覺得本書的內容似曾相識,要求讀者試著解出程式碼執行的結果為何,不過本書難度更高。書中的每個難題都嘗試地以「聲東擊西」的手法來描述,搞得像是柯南在辦案似地撲朔迷離。

讀者常會忽略其中的細節,因而掉入作者所設計的陷阱中,這樣的閱讀感受很新奇,你會想要了解到底問題在哪?為何結果不是如你所期望?一個接一個不斷探索,就如同推理小說般,沉浸在閱讀本書的樂趣中。當你讀完本書之後,你的除錯功力必會大大提昇,你會發覺你的觀察力已經與Java編譯器一樣地敏銳。

腦力激盪讓自己收穫更多,功力更高一層
筆者建議你在閱讀本書時,可以採取以下方法可以獲益良多:
● 閱讀程式碼,先不借助電腦預測這隻程式可能的行為及運行結果,如果還是看不出破綻,試著再多看幾次。

● 想出這隻程式到底在做什麼後,試著執行看看。看結果是不是跟預期的一樣?如果不是,可以找出原因嗎?

● 如果該程式有問題,思考一下如何修改。

● 最後,查閱一下該問題的解法。這部份會有你意想不到的答案。
你也不要因為無法解出這些難題而覺得沮喪,畢竟一個具備多年Java經驗的高手們,還是會有掉入圈套的可能。透過研習本書中的每個難題,可以測試一下你對Java的了解有多深,同時你也學到如何避免錯誤,寫出正確的程式碼。

另外你會發現,書中很多程式寫法,是你很少甚至不可能會用到的。這類型難題的設計,則是作者希望能更深入Java核心,也希望透過這樣的方法,讓學習Java更充滿樂趣。

《作者簡介》陳宏一
現任億訊國際資深顧問,交通大學資訊管理研究所碩士。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、數位營運研發專案經理、艾群科技產品研發部經理,專精於OOAD、J2EE Technology、Web application development、軟體開發流程及專案管理等;通過SCJP、SCWCD、 SCJD、SCEA等認證。曾參與線上社群網站規劃設計、電子商務網站規劃設計、金流整合及後臺管理系統規劃設計、線上遊戲系統監控管理平臺及計費系統規劃設計、網路開店系統平臺架構設計、WAP Portal規劃設計等專案規劃與建置。

熱門新聞

Advertisement