出版時間:2010-11-22 出版社:人民郵電出版社 作者:(美)布洛克//加夫特|譯者:陳昊鵬 頁數(shù):285 譯者:陳昊鵬
Tag標簽:無
前言
與許多書一樣,本書經(jīng)歷了長期的醞釀過程。我們收集Java謎題的時間與我們使用Java平臺的時間一樣長:如果你感興趣的話,可以告訴你是從1996年年中開始的。在2001年年初,我們產(chǎn)生了一個想法:搞一次完全涉及Java謎題的演講。我們把這個想法拋給了當時還在Oracle公司的Larry Jacobs,他完全同意。2001年11月,我們于舊金山舉辦的Oracle Open World會議上首次作了題為“Java謎題”的演講。為了增添魅力,我們介紹自己是“Type-it兄弟,Click和Hack”,并且從Tom和Ray Magliozzi主持的Cair Talk節(jié)目中借用了一大堆笑話…。這個演講被評選為最佳演講秀,也許我們不投自己的票,結果可能也如此。由此,我們知道找對了路子。一身藍領工人利落的制服,胸前別著Java的“咖啡杯”標志,我們在Java One 2002上再次利用Oracle會議上的演講來鼓吹我們的觀點——至少我們的朋友是這么認為的。在接下來的幾年里,我們又作了另外三次“Java謎題”的演講,并且在數(shù)不勝數(shù)的會議、公司和大學里宣講它們,足跡遍及全球許多城市,從奧斯陸到東京。這些演講受到普遍歡迎,起碼沒人沖我們扔爛蘋果。在Linux Magazine的2003年3月刊上,我們發(fā)表了一篇完全由Java謎題構成的文章,沒有收到任何厭惡我們的郵件。本書幾乎包含了我們的演講和文章中的所有謎題,以及許多其他的謎題。盡管本書集中關注Java平臺的陷阱和缺陷,但我們并沒有詆毀Java之意。我們熱愛Java,并將近10年的職業(yè)生涯都奉獻給了它。每一種具有強大能力的平臺都會有某些問題,Java與大多數(shù)平臺相比已經(jīng)算少的了。你對問題理解得越透徹,就越不會受到它們的影響,這正是本書要達到的目的。書中的多數(shù)謎題都是一些短程序,它們看起來是在“明修棧道”,實際卻是“暗渡陳倉”。這就是我們選擇視覺幻圖來裝飾本書的原因。這些幻圖看起來是某樣事物,但實際上卻是另一樣東西。在你努力思考這些程序到底在做什么的時候,可以盯著這些幻圖好好看看。我們希望本書能具有趣味性,真誠地希望你能夠盡情享受解惑的樂趣,就如同我們享受編寫它們的樂趣一樣,還希望你能夠從中學到很多東西,如我們曾經(jīng)的那樣。
內容概要
本書特寫了95個有關Java或其類庫的陷阱和缺陷的謎題,其中大多數(shù)謎題都采用短程序的形式給出,這些程序的實際行為與表面上大相徑庭。在每個謎題之后都給出了詳細的解惑方案,這些解惑方案超越了對程序行為的簡單解釋,向讀者展示了如何一勞永逸地避免底層的陷阱與缺陷。 本書趣味十足、寓教于樂,適合于具備Java知識的學習者和有編程經(jīng)驗的Java程序員。
作者簡介
作者:(美國)布洛克(Joshua Bloch) (美國)加夫特(Neal Gafter) 譯者:陳昊鵬Joshua Bloch,Google公司的首席工程師。著有Jolt大獎作品Effective Java Programming Language Guide。他之前是Sun公司的杰出工程師和Transarc公司的資深系統(tǒng)設計師。Bloch領導了大量的Java平臺特性的設計與實現(xiàn)工作。包括JDK 5.0中的語言改進和獲獎的Java集合框架。他擁有卡耐基-梅隆大學計算機科學專業(yè)的博士學位。Neal Gafter現(xiàn)任微軟架構師。曾任Google公司的軟件工程師,還曾是Sun公司的資深工程師,領導了Java編譯器的開發(fā)工作,并且實現(xiàn)了Java 1.4版至5.0版的許多語言特性。Gafter曾經(jīng)是C++標準委員會的成員,他在Sun、Microtec Research和Texas Instrument時領導了C和C++編譯器的開發(fā)工作。他擁有羅徹斯特大學計算機科學專業(yè)的博士學位。
書籍目錄
第1章 緒論第2章 表達式之謎 謎題1:奇數(shù)性 謎題2:找零時刻 謎題3:長整除 謎題4:初級問題 謎題5:十六進制的趣事 謎題6:多重轉型 謎題7:互換內容 謎題8:Dos Equis 謎題9:半斤 謎題10:八兩第3章 字符之謎 謎題11:最后的笑聲 謎題12:ABC 謎題13:動物莊園 謎題14:轉義字符的潰敗 謎題15:令人暈頭轉向的Hello 謎題16:行打印程序 謎題17:嗯? 謎題18:字符串奶酪 謎題19:漂亮的火花(塊注釋符) 謎題20:我的類是什么 謎題21:我的類是什么?鏡頭2 謎題22:URL的愚弄 謎題23:不勞無獲第4章 循環(huán)之謎 謎題24:盡情享受每一個字節(jié) 謎題25:無情的增量操作 謎題26:在循環(huán)中 謎題27:變幻莫測的i值 謎題28:循環(huán)者 謎題29:循環(huán)者的新娘 謎題30:循環(huán)者的愛子 謎題31:循環(huán)者的鬼魂 謎題32:循環(huán)者的詛咒 謎題33:循環(huán)者遇到了狼人 謎題34:被計數(shù)擊倒了 謎題35:分鐘計數(shù)器第5章 異常之謎 謎題36:優(yōu)柔寡斷 謎題37:極端不可思議 謎題38:不受歡迎的賓客 謎題39:您好,再見 謎題40:不情愿的構造器 謎題41:字段和流 謎題42:異常為循環(huán)而拋 謎題43:異常地危險 謎題44:刪除類 謎題45:令人疲憊不堪的測驗第6章 類之謎 謎題46:令人混淆的構造器案例 謎題47:啊呀!貍貓變犬子 謎題48:我所得到的都是靜態(tài)的 謎題49:比生命更大 謎題50:不是你的類型 謎題51:要點何在 謎題52:總和的玩笑 謎題53:做你的事吧 謎題54:Null與Void 謎題55:特創(chuàng)論第7章 庫之謎 謎題56:大問題 謎題57:名字里有什么 謎題58:產(chǎn)生它的散列碼 謎題59:差是什么 謎題60:一行以斃之 謎題61:日期游戲 謎題62:名字游戲 謎題63:更多同樣的問題 謎題64:按余數(shù)編組 謎題65:疑似排序的驚人傳奇第8章 更多類之謎 謎題66:一件私事 謎題67:對字符串上癮 謎題68:灰色的陰影 謎題69:黑色的漸隱 謎題70:一攬子交易 謎題71:進口稅 謎題72:終極危難 謎題73:隱私在公開 謎題74:同一性的危機 謎題75:頭還是尾? 名字重用的術語表第9章 更多庫之謎 謎題76:乒乓 謎題77:亂鎖之妖 謎題78:反射的影響 謎題79:狗狗的幸福生活 謎題80:更深層的反射 謎題81:無法識別的字符化 謎題82:啤酒爆炸 謎題83:誦讀困難者的一神論 謎題84:戛然而止 謎題85:延遲初始化第10章 高級謎題 謎題86:有害的括號垃圾 謎題87:緊張的關系 謎題88:原始類型的處理 謎題89:泛型迷藥 謎題90:荒謬痛苦的超類 謎題91:序列殺手 謎題92:雙絞線 謎題93:類的戰(zhàn)爭 謎題94:迷失在混亂中 謎題95:來份甜點附錄A 陷阱和缺陷的目錄 A.1 詞匯問題 A.2 整數(shù)運算 A.3 浮點運算 A.4 表達式計算 A.5 控制流 A.6 類初始化 A.7 實例的創(chuàng)建與銷毀 A.8 其他與類和實例相關的主題 A.9 名字重用 A.10 字符串 A.11 I/O A.12 線程 A.13 反射 A.14 序列化 A.15 其他庫附錄B 書中幻圖的注釋參考文獻索引
章節(jié)摘錄
插圖:
媒體關注與評論
“每一種編程語言都有其怪癖的行為。這本生動的書通過趣味十足和發(fā)人深省的編程謎題揭示了Java編程語言的奇異之處?!薄 狦uy Steele,Sun院士,《Java語言規(guī)范》的合著者“我笑了。我叫起來了。我欽佩地揚起了雙手?!薄 猅im Peieris, Prior Artisans公司總裁,JSR166專家組成員
編輯推薦
《Java解惑》:Effective Java作者又一力作,實例講授Java中令人迷惑和不易掌握的知識點,寓教于樂,妙趣橫生。你認為自己了解Java多少?你是個愛琢磨的代碼偵探嗎?你是否曾經(jīng)花費數(shù)天時間去追蹤一個Java或其類庫的陷阱和缺陷而導致的bug?你喜歡智力測驗嗎?《Java解惑》正好適合你!Bloch和Gafter繼承了Effective Java一書的傳統(tǒng)。深入研究了Java編程語言及其核心類庫的細微之處?!禞ava解惑》特寫T95個噩夢般的謎題,中間穿插著許多有趣的視覺幻象。寓教于樂。任何具備Java知識的人都可以理解這些謎題,但甚至是最老練的程序員也會覺得它們具有挑戰(zhàn)性。多數(shù)的謎題都是些小程序,其行為詭秘。不可貌相。你能指出它們會做什么嗎?根據(jù)這些謎題用到的特性以及各題的詳細解惑方案。我們將其松散地分成了幾個部分。這些解惑方案超越了對程序行為的簡單解釋,向你展示了如何一勞永逸地避免底層的陷阱與缺陷?!禞ava解惑》最后列出了一些常見的陷阱和缺陷,可供讀者參考。一旦你解決了這些謎題,那些曾經(jīng)愚弄過最具經(jīng)驗的Java程序員的隱晦且有違直覺的語言行為,將再也無法把你騙過。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載