Effective Java 中文版 (原書第3版)
[美]約書亞·布洛克(Joshua Bloch)
- 出版商: 人民郵電
- 出版日期: 2024-08-01
- 售價: $599
- 語言: 簡體中文
- 頁數: 264
- 裝訂: 平裝
- ISBN: 711562898X
- ISBN-13: 9787115628985
-
相關分類:
Java
- 此書翻譯自: Effective Java, 3/e (Paperback)
已絕版
買這商品的人也買了...
-
人月神話:軟體專案管理之道 (20 週年紀念版)(The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2/e)$480$379 -
無瑕的程式碼-敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)$580$452 -
圖解 HTTP$359$341 -
單元測試的藝術, 2/e (The Art of Unit Testing: with examples in C#, 2/e)$650$507 -
領域驅動設計:軟體核心複雜度的解決方法 (Domain-Driven Design: Tackling Complexity in the Heart of Software)$680$530 -
$774深入理解 Java 虛擬機:JVM 高級特性與最佳實踐, 3/e -
軟體架構原理|工程方法 (Fundamentals of Software Architecture: A Comprehensive Guide to Patterns, Characteristics, and Best Practices)$680$537 -
架構師的自我修煉:技術、架構和未來$534$507 -
Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624 -
On Java 中文版 基礎捲$779$740 -
$678On Java 中文版 進階捲 -
Google 的軟體工程之道|從程式設計經驗中吸取教訓 (Software Engineering at Google)$880$695 -
你就是不寫測試才會沒時間:Kuma 的單元測試實戰 -- Java篇(iThome鐵人賽系列書)$650$507 -
大話設計模式:JAVA 風雲再起彩色加強版$880$695 -
從基礎應用到企業開發 - Spring Boot 從實戰中快速上手$1,080$853 -
程式設計守則|如何寫出更好的程式碼 (The Rules of Programming: How to Write Better Code)$620$490 -
「演算法×數學」全彩圖解學習全指南:從基礎開始,一次學會24種必學演算法與背後的關鍵數學知識及應用$650$514 -
領域故事化:協作 x 視覺化 x Agile,輕鬆打造專業水準的 DDD 軟體 (Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software)$650$507 -
可觀測性入門指南:Logs、Metrics、Traces 三大實戰應用,用 24個 Lab 鞏固你的 SRE 技能樹 (iThome鐵人賽系列書)$680$530 -
簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 Javascript 為例 (Grokking Simplicity: Taming Complex Software with Functional Thinking)$1,000$790 -
多團隊高效協作密技:大規模敏捷開發方法 Large Scale Scrum 簡單學(iThome鐵人賽系列書)$650$507 -
這樣寫 code 好不好?辨識、分析、改善,寫出易讀易維護的程式碼$630$498 -
軟體工程師求職策略大全:透過外商面試題目演練、手把手履歷教學,跟招募員過招、白板解題、薪資談判到入職準備,帶讀者用最有效的方式找工作$680$530 -
無瑕的程式碼 軟體工匠篇:程式設計師必須做到的紀律、標準與倫理 (Clean Craftsmanship: Disciplines, Standards, and Ethics)$720$562 -
OpenTelemetry 學習手冊 (Learning Opentelemetry: Setting Up and Operating a Modern Observability System)$580$458
相關主題
商品描述
本書是Jolt獲獎作品Effective Java的第3版,對上一版進行了全面更新,涵蓋了從Java 5到Java 9的種種特性,是Java開發人員不可缺少的一本參考書。
本書分為12章,包含90個條目,形式簡潔。每個條目中都講述了對Java的獨到見解,闡明瞭如何編寫高效、優雅的程序,並且提供了清晰、易懂的示例代碼。與上一版相比,本書增加了Lambda表達式、流、Optional類、接口默認方法、try-with-resources、@SafeVarargs註解、模塊等Java 7及以後所引入的新特性。本書介紹瞭如何充分利用泛型、枚舉、註解、自動裝箱、for-each循環、可變參數、並發機制等各種特性,幫助讀者更加有效地使用Java編程語言及其基本類庫(java.lang、java.util和java.io,以及子包,如java.util.concurrent和java.util.function等)。
作者簡介
約書亞·布洛克(Joshua Bloch)是美國卡內基-梅隆大學教授,曾是Google公司首席Java架構師、Sun公司傑出工程師和Transarc公司高級系統設計師。他帶領團隊設計和實現過無數的Java平臺特性,包括JDK 5.0語言增強版和獲獎的Java Collections Framework。他擁有哥倫比亞大學的電腦科學學士學位和卡內基-梅隆大學的電腦科學博士學位。他的作品還包括Java Puzzlers和《Java並發編程實戰》(Java Concurrency in Practice,曾獲Jolt大獎提名)等。
目錄大綱
第 1章 引言 1
第 2章 創建和銷毀對象 4
條目1:用靜態工廠方法代替構造器 4
條目2:當構造器參數較多時考慮使用
生成器 7
條目3:利用私有構造器或枚舉類型強化
Singleton屬性 13
條目4:利用私有構造器防止類被實例化 14
條目5:優先考慮通過依賴註入來連接
資源 15
條目6:避免創建不必要的對象 17
條目7:清除過期的對象引用 19
條目8:避免使用終結方法和清理方法 21
條目9:與try-finally相比,首選
try-with-resources 25
第3章 對所有對象都通用的方法 28
條目10:在重寫equals方法時要遵守通用
約定 28
條目11:重寫equals方法時應該總是重寫
hashCode方法 37
條目12:總是重寫toString方法 41
條目13:謹慎重寫clone方法 43
條目14:考慮實現Comparable接口 49
第4章 類和接口 54
條目15:最小化類和成員的可訪問性 54
條目16:在公有類中,使用訪問器方法,
而不使用公有的字段 57
條目17:使可變性最小化 58
條目18:組合優先於繼承 63
條目19:要麼為繼承而設計並提供文檔
說明,要麼就禁止繼承 68
條目20:與抽象類相比,優先選擇接口 72
條目21:為傳諸後世而設計接口 75
條目22:接口僅用於定義類型 77
條目23:優先使用類層次結構而不是
標記類 78
條目24:與非靜態成員類相比,優先選擇
靜態成員類 81
條目25:將源文件限制為單個頂層類 83
第5章 泛型 85
條目26:不要使用原始類型 85
條目27:消除unchecked類型的警告 89
條目28:列表優先於數組 91
條目29:首選泛型類型 94
條目30:首選泛型方法 98
條目31:使用有限制的通配符增加API的
靈活性 100
條目32:謹慎混用泛型和可變參數 105
條目33:考慮類型安全的異構容器 108
第6章 枚舉和註解 113
條目34:使用enum代替int常量 113
條目35:使用實例字段代替序號 121
條目36:使用EnumSet代替位域 122
條目37:不要以序號作為索引,使用
EnumMap代替 123
條目38:使用接口模擬可擴展的枚舉 127
條目39:與命名模式相比首選註解 130
條目40:始終使用Override註解 136
條目41:使用標記接口來定義類型 138
第7章 Lambda表達式和流 140
條目42:與匿名類相比,優先選擇Lambda
表達式 140
條目43:與Lambda表達式相比,優先選擇
方法引用 143
條目44:首選標準的函數式接口 144
條目45:謹慎使用流 147
條目46:在流中首選沒有副作用的
函數 152
條目47:作為返回類型時,首選Collection
而不是Stream 156
條目48:將流並行化時要謹慎 160
第8章 方法 163
條目49:檢查參數的有效性 163
條目50:必要時進行保護性復制 165
條目51:仔細設計方法簽名 168
條目52:謹慎使用重載 170
條目53:謹慎使用可變參數 174
條目54:返回空的集合或數組,而不是
null 176
條目55:謹慎返回Optional 177
條目56:為所有導出的API元素編寫文檔
註釋 181
第9章 通用編程 186
條目57:最小化局部變量的作用域 186
條目58:與傳統的for循環相比,首選
for-each循環 188
條目59:瞭解並使用類庫 190
條目60:如果需要精確的答案,避免使用
float和double 192
條目61:首選基本類型,而不是其
封裝類 194
條目62:如果其他類型更適合,就不要使用
字符串 196
條目63:註意字符串拼接操作的性能 198
條目64:通過接口來引用對象 198
條目65:與反射相比,首選接口 200
條目66:謹慎使用本地方法 202
條目67:謹慎進行優化 203
條目68:遵循普遍接受的命名慣例 205
第 10章 異常 208
條目69:異常機制應該僅用於異常的
情況 208
條目70:對於可恢復的條件,使用檢查型
異常;對於編程錯誤,使用運行時
異常 210
條目71:避免不必要地使用檢查型
異常 211
條目72:優先使用標準異常 212
條目73:拋出適合於當前抽象的異常 214
條目74:將每個方法拋出的所有異常都寫在
文檔中 215
條目75:將故障記錄信息包含在詳細
信息中 216
條目76:努力保持故障的原子性 218
條目77:不要忽略異常 219
第 11章 並發 220
條目78:同步對共享可變量據的訪問 220
條目79:避免過度同步 223
條目80:與線程相比,首選執行器、
任務和流 228
條目81:與wait和notify相比,首選
高級並發工具 229
條目82:將線程安全性寫在文檔中 233
條目83:謹慎使用延遲初始化 235
條目84:不要依賴線程調度器 237
第 12章 序列化 239
條目85:優先選擇其他序列化替代方案 239
條目86:在實現Serializable接口時要
特別謹慎 241
條目87:考慮使用自定義的序列化形式 243
條目88:保護性地編寫readObject
方法 248
條目89:對於實例受控的類,首選枚舉類型
而不是readResolve 253
條目90:考慮使用序列化代理代替序列化
實例 256
附錄 與第 2版中條目的對應關系 259
參考文獻 262


