 |
-- 會員 / 註冊 --
|
|
|
|
On Java 中文版 進階卷 ( 簡體 字) |
作者:[美]布魯斯·埃克爾(Bruce Eckel) | 類別:1. -> 程式設計 -> JAVA -> Java |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 55656 詢問書籍請說出此書號!【缺書】 NT售價: 650 元 |
出版日:3/1/2022 |
頁數:560 |
光碟數:0 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115585028 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書內容主要是對《On Java 中文版 基礎卷》的拓展延伸,重點講解 Java 的高級特性、并發、設計模式等相關進階知識,對一些和開發密切相關的底層操作(如 I/O 系統、底層并發、數據壓縮等)進行深入探討,同時針對基礎卷的重點章節進行了補充說明(如第 3 章增補了一些關于集合的高級特性)。在附錄中,作者給出了 67 條關于低級程序設計和編寫代碼的建議,并分享了自己成為程序員的一些經驗之談。 本書適合有一定項目開發經驗的 Java 程序員閱讀。 |
目錄:第 1章 枚舉類型 001 1.1 枚舉類型的基本特性 / 001 靜態導入枚舉類型 / 002 1.2 在枚舉類型中增加自定義方 法 / 003 重載枚舉類型中的方法 / 004 1.3 在switch語句中使用枚舉 / 005 1.4 values()方法的神秘之處 / 006 1.5 實現,而不是繼承 / 009 1.6 隨機選擇 / 010 1.7 使用接口來組織枚舉 / 011 1.8 用EnumSet來代替標識 / 015 1.9 使用EnumMap / 017 1.10 常量特定方法 / 018 1.10.1 用枚舉實現職責鏈模 式 / 023 1.10.2 用枚舉實現狀態機 / 027 1.11 多路分發 / 032 1.11.1 使用枚舉類型分發 / 034 1.11.2 使用常量特定方法 / 036 1.11.3 使用EnumMap分發 / 038 1.11.4 使用二維數組 / 039 1.12 支持模式匹配的新特性 / 041 1.13 新特性:switch中的箭頭語 法 / 041 1.14 新特性:switch中的case null / 042 1.15 新特性:將switch作為表達 式 / 044 1.16 新特性:智能轉型 / 046 1.17 新特性:模式匹配 / 048 1.17.1 違反里氏替換原則 / 049 1.17.2 守衛 / 053 1.17.3 支配性 / 055 1.17.4 覆蓋范圍 / 057 1.18 總結 / 058 第 2章 對象傳遞和返回 060 2.1 傳遞引用 / 061 引用別名 / 061 2.2 創建本地副本 / 063 2.2.1 值傳遞 / 063 2.2.2 克隆對象 / 064 2.2.3 為類增加可克隆能力 / 065 2.2.4 成功的克隆 / 067 2.2.5 Object.clone()的效果 / 068 2.2.6 克隆組合對象 / 070 2.2.7 深拷貝ArrayList / 073 2.2.8 通過序列化進行深拷貝 / 074 2.2.9 在繼承層次結構中增加可克隆性并向下覆蓋 / 076 2.2.10 為什么用這種奇怪的 設計 / 077 2.3 控制可克隆性 / 078 復制構造器 / 082 2.4 不可變類 / 086 2.4.1 創建不可變類 / 088 2.4.2 不可變性的缺點 / 089 2.4.3 String很特殊 / 091 2.5 總結 / 091 第3章 集合主題 093 3.1 樣例數據 / 093 3.2 List的行為 / 099 3.3 Set的行為 / 102 3.4 在Map上使用函數式操作 / 104 3.5 選擇Map的部分元素 / 105 3.6 填充集合 / 107 3.6.1 使用Suppliers來填充Collection / 108 3.6.2 使用Suppliers來填充 Map / 109 3.7 使用享元自定義Collection和Map / 112 3.8 Collection的功能 / 123 3.9 可選的操作 / 125 不支持的操作 / 127 3.10 Set與存儲順序 / 129 SortedSet / 132 3.11 Queue / 134 3.11.1 優先級隊列 / 135 3.11.2 Deque / 136 3.12 理解Map / 137 3.12.1 性能 / 139 3.12.2 SortedMap / 141 3.12.3 LinkedHashMap / 143 3.13 工具函數 / 144 3.13.1 List上的排序和 查找 / 147 3.13.2 創建不可修改的Collection或Map / 148 3.13.3 同步Collection或 Map / 150 3.14 持有引用 / 151 WeakHashMap / 154 3.15 Java 1.0/1.1的集合類 / 155 3.15.1 Vector和 Enumeration / 155 3.15.2 Hashtable / 156 3.15.3 Stack / 157 3.15.4 BitSet / 158 3.16 總結 / 160 第4章 注解 162 4.1 基本語法 / 163 4.1.1 定義注解 / 164 4.1.2 元注解 / 165 4.2 編寫注解處理器 / 166 4.2.1 注解元素 / 167 4.2.2 默認值的限制 / 168 4.2.3 生成外部文件 / 168 4.2.4 注解不支持繼承 / 172 4.2.5 實現處理器 / 172 4.3 用javac處理注解 / 174 4.3.1 最簡單的處理器 / 175 4.3.2 更復雜的處理器 / 178 4.4 基于注解的單元測試 / 182 4.4.1 在@Unit中使用泛型 / 190 4.4.2 實現@Unit / 192 4.5 總結 / 202 第5章 并發編程 203 5.1 令人迷惑的術語 / 204 并發的新定義 / 206 5.2 并發的超能力 / 207 5.3 并發為速度而生 / 209 5.4 Java并發四定律 / 211 5.4.1 不要使用并發 / 211 5.4.2 一切都不可信,一切都很 重要 / 212 5.4.3 能運行并不代表沒有 問題 / 212 5.4.4 你終究要理解并發 / 213 5.5 殘酷的事實 / 214 5.6 本章剩余部分 / 216 5.7 并行流 / 218 5.7.1 parallel()并非靈丹妙 藥 / 219 5.7.2 parallel()和limit()的 作用 / 224 5.7.3 并行流只是看起來很簡 單 / 228 5.8 創建和運行任務 / 228 5.8.1 Task和Executor / 228 5.8.2 使用更多的線程 / 232 5.8.3 生成結果 / 234 5.8.4 作為任務的lambda與方法引用 / 236 5.9 終止長時間運行的任務 / 237 5.10 CompletableFuture / 240 5.10.1 基本用法 / 241 5.10.2 其他操作 / 244 5.10.3 合并多個Completable-Future / 247 5.10.4 模擬場景應用 / 251 5.10.5 異常 / 253 5.11 死鎖 / 259 5.12 構造器并不是線程安全的 / 264 5.13 工作量、復雜性、成本 / 268 5.14 總結 / 273 5.14.1 缺點 / 274 5.14.2 Java核心設計的失敗之 處 / 275 5.14.3 其他的庫 / 275 5.14.4 設想一種為并發而設計的語言 / 276 5.14.5 延伸閱讀 / 276 第6章 底層并發 277 6.1 什么是線程? / 277 6.1.1 最佳線程數 / 279 6.1.2 我可以創建多少線程 / 280 6.2 捕獲異常 / 282 6.3 共享資源 / 286 6.3.1 資源競爭 / 286 6.3.2 解決資源競爭 / 290 6.3.3 將EvenProducer同步化 / 292 6.4 volatile關鍵字 / 293 6.4.1 字分裂 / 293 6.4.2 可見性 / 294 6.4.3 (指令)重排序和先行發 生 / 295 6.4.4 何時使用volatile / 296 6.5 原子性 / 296 6.5.1 Josh的序列號 / 300 6.5.2 原子類 / 303 6.6 臨界區 / 304 6.6.1 在其他對象上進行同步 / 307 6.6.2 使用顯式Lock對象 / 308 6.7 庫組件 / 310 6.7.1 延遲隊列DelayQueue / 311 6.7.2 優先級阻塞隊列Priority-BlockingQueue / 313 6.7.3 無鎖集合 / 316 6.8 總結 / 317 第7章 Java I/O系統 319 7.1 I/O流 / 319 7.1.1 各種InputStream類型 / 321 7.1.2 各種OutputStream類型 / 321 7.1.3 添加屬性和有用的接口 / 322 7.1.4 各種Reader和Writer / 324 7.1.5 自成一家的Random-AccessFile / 327 7.1.6 I/O流的典型用法 / 328 7.1.7 小結 / 335 7.2 標準I/O / 335 7.2.1 從標準輸入中讀取 / 336 7.2.2 將System.out轉換為PrintWriter / 336 7.2.3 標準I/O重定向 / 337 7.2.4 進程控制 / 338 7.3 新I/O系統 / 340 7.3.1 字節緩沖區ByteBuffer / 340 7.3.2 轉換數據 / 344 7.3.3 獲取基本類型 / 347 7.3.4 視圖緩沖區 / 348 7.3.5 用緩沖區操縱數據 / 352 7.3.6 內存映射文件 / 357 7.3.7 文件加鎖 / 361 第8章 設計模式 364 8.1 設計模式的概念 / 364 8.2 單例模式 / 366 8.3 設計模式的分類 / 370 8.4 模板方法 / 370 8.5 封裝實現 / 371 8.5.1 代理模式 / 372 8.5.2 狀態模式 / 373 8.5.3 狀態機模式 / 376 8.6 工廠模式:封裝對象的創建 / 377 8.6.1 動態工廠模式 / 380 8.6.2 多態工廠模式 / 381 8.6.3 抽象工廠模式 / 382 8.7 函數對象模式 / 384 8.7.1 命令模式 / 385 8.7.2 策略模式 / 386 8.7.3 職責鏈模式 / 388 8.8 改變接口 / 391 8.8.1 適配器模式 / 391 8.8.2 外觀模式 / 392 8.9 解釋器模式:運行時的靈活 性 / 394 8.10 回調 / 394 8.10.1 觀察者模式 / 394 8.10.2 示例:觀察花朵 / 395 8.10.3 一個可視化的觀察者示 例 / 398 8.11 多路分發 / 401 8.12 模式重構 / 405 8.12.1 Trash和它的子類 / 405 8.12.2 信使對象 / 410 8.12.3 使工廠通用化 / 411 8.12.4 從文件解析Trash / 412 8.12.5 用DynaFactory實現回 收 / 415 8.12.6 將用法抽象化 / 416 8.12.7 用多路分發重新設計 / 420 8.12.8 訪問者模式 / 427 8.12.9 反射是有害的? / 431 8.13 總結 / 435 編程指南 / 436 Javadoc / 446 理解equals()和hashCode() / 451 數據壓縮 / 475 對象序列化 / 481 靜態類型檢查的利與弊 / 505 |
序: |
|