注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Effective Java中文版(原書第3版)

Effective Java中文版(原書第3版)

Effective Java中文版(原書第3版)

定 價(jià):¥119.00

作 者: 約書亞·布洛克 著,俞黎敏 譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111612728 出版時(shí)間: 2019-01-01 包裝: 平裝
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  Java之父James Gosling鼎力推薦、Jolt獲獎作品全新升級,針對Java 7、8、9全面更新,Java程序員必備參考書。包含大量完整的示例代碼和透徹的技術(shù)分析,通過90條經(jīng)驗(yàn)法則,探索新的設(shè)計(jì)模式和語言習(xí)慣用法,幫助讀者更加有效地使用Java編程語言及其基本類庫。 全書共12章,90條。第1章為引言;第2章闡述何時(shí)以及如何創(chuàng)建和避免創(chuàng)建對象,如何確保對象能夠適時(shí)地銷毀,以及如何管理對象銷毀之前必須進(jìn)行的各種清除動作;第3章闡述所有對象都通用的方法,如equals、hashCode、toString、clone和finalize以及Comparable.compareTo方法等;第4章闡述作為Java語言的核心以及Java語言的基本抽象單元(類和接口)在使用上的一些指導(dǎo)原則,以設(shè)計(jì)出更加有用、健壯和靈活的類與接口;第5章和第6章分別闡述在Java 1.5發(fā)行版本中新增加的泛型、枚舉和注解的*佳實(shí)踐,教你如何*大限度地享有這些優(yōu)勢;第7章討論在Java 8中新增的函數(shù)接口、Lambda、方法引用,和為處理數(shù)據(jù)元素的序列提供類庫級別支持的Stream API;第8章討論方法設(shè)計(jì)的幾個(gè)方面:如何處理參數(shù)和返回值,如何設(shè)計(jì)方法簽名,如何為方法編寫文檔,從而使方法設(shè)計(jì)在可用性、健壯性和靈活性上有進(jìn)一步的提升;第9章主要討論Java語言的具體細(xì)節(jié),包括局部變量的處理、控制結(jié)構(gòu)、類庫的使用、各種數(shù)據(jù)類型的用法、反射機(jī)制和本地方法的用法,以及優(yōu)化和命名慣例;第10章闡述如何充分發(fā)揮異常的優(yōu)點(diǎn)來提高程序的可讀性、可靠性和可維護(hù)性,以及減少異常使用不當(dāng)所帶來的負(fù)面影響,并提供了一些關(guān)于有效使用異常的指導(dǎo)原則;第11章闡述寫出清晰、正確、文檔組織良好的并發(fā)程序;第12章講解序列化方面的技術(shù),其中包括序列化代理模式,它可以幫助你避免對象序列化的許多缺陷。

作者簡介

  Joshua Bloch 美國卡內(nèi)基-梅隆大學(xué)教授,曾是Google公司首席Java架構(gòu)師、Sun公司杰出工程師和Transarc公司高級系統(tǒng)設(shè)計(jì)師。他帶領(lǐng)團(tuán)隊(duì)設(shè)計(jì)和實(shí)現(xiàn)過無數(shù)的Java平臺特性,包括JDK 5.0語言增強(qiáng)版和獲獎的Java Collections Framework。他擁有哥倫比亞大學(xué)的計(jì)算機(jī)科學(xué)學(xué)士學(xué)位和卡內(nèi)基-梅隆大學(xué)的計(jì)算機(jī)科學(xué)博士學(xué)位。他的著作還包括《Java Puzzlers》和《Java并發(fā)編程實(shí)戰(zhàn)》(曾獲Jolt大獎提名)等。俞黎敏(YuLimin,網(wǎng)名:阿敏總司令) 2008年7月加入IBM廣州分公司,擔(dān)任高級技術(shù)顧問,主要負(fù)責(zé)WebSphere系列產(chǎn)品以及云計(jì)算、物聯(lián)網(wǎng)相關(guān)的技術(shù)支持工作,專注于產(chǎn)品新特性、系統(tǒng)性能調(diào)優(yōu)、疑難問題診斷與解決。開源愛好者,曾參與Spring中文論壇組織的《Spring 2.0 Reference》中文翻譯的一審與二審,滿江紅開放技術(shù)研究組織的《Seam 1.2.1 Reference》的中文翻譯,組織完成了《Seam 2.0 Reference》的中文翻譯工作。CSDN、CJSDN、Dev2Dev、Matrix、JavaWorldTW、Spring中文等Java論壇的版主,在各大技術(shù)社區(qū)為推動開源和敏捷開發(fā)做出了積極的貢獻(xiàn)。翻譯與審校過多本圖書。 個(gè)人網(wǎng)站:http://www.Java2Class.net;博客:http://blog.csdn.net/YuLimin/

圖書目錄

推薦序
譯者序
前言
致謝
第1章 引言 1
第2章 創(chuàng)建和銷毀對象 4
第1條:用靜態(tài)工廠方法代替構(gòu)造器 4
第2條:遇到多個(gè)構(gòu)造器參數(shù)時(shí)要考慮使用構(gòu)建器 8
第3條:用私有構(gòu)造器或者枚舉類型強(qiáng)化Singleton屬性 13
第4條:通過私有構(gòu)造器強(qiáng)化不可實(shí)例化的能力 15
第5條:優(yōu)先考慮依賴注入來引用資源 16
第6條:避免創(chuàng)建不必要的對象 18
第7條:消除過期的對象引用 20
第8條:避免使用終結(jié)方法和清除方法 23
第9條:try-with-resources優(yōu)先于try-f?inally 27
第3章 對于所有對象都通用的方法 30
第10條:覆蓋equals時(shí)請遵守通用約定 30
第11條:覆蓋equals時(shí)總要覆蓋hashCode 40
第12條:始終要覆蓋toString 44
第13條:謹(jǐn)慎地覆蓋clone 46
第14條:考慮實(shí)現(xiàn)Comparable接口 53
第4章 類和接口 59
第15條:使類和成員的可訪問性最小化 59
第16條:要在公有類而非公有域中使用訪問方法 62
第17條:使可變性最小化 64
第18條:復(fù)合優(yōu)先于繼承 70
第19條:要么設(shè)計(jì)繼承并提供文檔說明,要么禁止繼承 75
第20條:接口優(yōu)于抽象類 79
第21條:為后代設(shè)計(jì)接口 83
第22條:接口只用于定義類型 85
第23條:類層次優(yōu)于標(biāo)簽類 86
第24條:靜態(tài)成員類優(yōu)于非靜態(tài)成員類 88
第25條:限制源文件為單個(gè)頂級類 91
第5章 泛型 93
第26條:請不要使用原生態(tài)類型 93
第27條:消除非受檢的警告 97
第28條:列表優(yōu)于數(shù)組 99
第29條:優(yōu)先考慮泛型 102
第30條:優(yōu)先考慮泛型方法 106
第31條:利用有限制通配符來提升API的靈活性 109
第32條:謹(jǐn)慎并用泛型和可變參數(shù) 114
第33條:優(yōu)先考慮類型安全的異構(gòu)容器 118
第6章 枚舉和注解 123
第34條:用enum代替int常量 123
第35條:用實(shí)例域代替序數(shù) 131
第36條:用EnumSet代替位域 132
第37條:用EnumMap代替序數(shù)索引 134
第38條:用接口模擬可擴(kuò)展的枚舉 138
第39條:注解優(yōu)先于命名模式 140
第40條:堅(jiān)持使用Override注解 147
第41條:用標(biāo)記接口定義類型 149
第7章 Lambda和Stream 151
第42條:Lambda優(yōu)先于匿名類 151
第43條:方法引用優(yōu)先于Lambda 154
第44條:堅(jiān)持使用標(biāo)準(zhǔn)的函數(shù)接口 156
第45條:謹(jǐn)慎使用Stream 159
第46條:優(yōu)先選擇Stream中無副作用的函數(shù) 164
第47條:Stream要優(yōu)先用Collection作為返回類型 168
第48條:謹(jǐn)慎使用Stream并行 172
第8章 方法 176
第49條:檢查參數(shù)的有效性 176
第50條:必要時(shí)進(jìn)行保護(hù)性拷貝 179
第51條:謹(jǐn)慎設(shè)計(jì)方法簽名 182
第52條:慎用重載 184
第53條:慎用可變參數(shù) 189
第54條:返回零長度的數(shù)組或者集合,而不是null 190
第55條:謹(jǐn)慎返回optinal 192
第56條:為所有導(dǎo)出的API元素編寫文檔注釋 196
第9章 通用編程 202
第57條:將局部變量的作用域最小化 202
第58條:for-each循環(huán)優(yōu)先于傳統(tǒng)的for循環(huán) 204
第59條:了解和使用類庫 207
第60條:如果需要精確的答案,請避免使用f?loat和double 209
第61條:基本類型優(yōu)先于裝箱基本類型 211
第62條:如果其他類型更適合,則盡量避免使用字符串 213
第63條:了解字符串連接的性能 215
第64條:通過接口引用對象 216
第65條:接口優(yōu)先于反射機(jī)制 218
第66條:謹(jǐn)慎地使用本地方法 220
第67條:謹(jǐn)慎地進(jìn)行優(yōu)化 221
第68條:遵守普遍接受的命名慣例 223
第10章 異常 227
第69條:只針對異常的情況才使用異常 227
第70條:對可恢復(fù)的情況使用受檢異常,對編程錯誤使用運(yùn)行時(shí)異常 229
第71條:避免不必要地使用受檢異常 231
第72條:優(yōu)先使用標(biāo)準(zhǔn)的異常 232
第73條:拋出與抽象對應(yīng)的異常 234
第74條:每個(gè)方法拋出的所有異常都要建立文檔 235
第75條:在細(xì)節(jié)消息中包含失敗-捕獲信息 237
第76條:努力使失敗保持原子性 238
第77條:不要忽略異常 239
第11章 并發(fā) 241
第78條:同步訪問共享的可變數(shù)據(jù) 241
第79條:避免過度同步 245
第80條:executor、task和stream優(yōu)先于線程 250
第81條:并發(fā)工具優(yōu)先于wait和notify 251
第82條:線程安全性的文檔化 256
第83條:慎用延遲初始化 258
第84條:不要依賴于線程調(diào)度器 261
第12章 序列化 263
第85條:其他方法優(yōu)先于Java序列化 263
第86條:謹(jǐn)慎地實(shí)現(xiàn)Serializable接口 266
第87條:考慮使用自定義的序列化形式 269
第88條:保護(hù)性地編寫readObject方法 274
第89條:對于實(shí)例控制,枚舉類型優(yōu)先于readResolve 279
第90條:考慮用序列化代理代替序列化實(shí)例 282
附錄 與第2版中條目的對應(yīng)關(guān)系 286
參考文獻(xiàn) 289

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號