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