|
-- 會員 / 註冊 --
|
|
|
|
寫給大忙人看的Java核心技術 ( 簡體 字) |
作者:楊謙等 | 類別:1. -> 程式設計 -> JAVA -> Java |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 43260 詢問書籍請說出此書號!【缺書】 NT售價: 540 元 |
出版日:12/1/2015 |
頁數:484 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121278372 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:前言 Java已誕生約二十年,經典書籍《Java核心技術》第一卷和第二卷用兩千多頁全面細致地介紹Java語言和所有核心類庫,以及各版本之間的大量變化。但是Java 8改變了這一切。許多舊的Java習慣用法不再需要,并且有了更快、更方便地學習Java的途徑。本書中,我們將展示現代java中的“好的地方”,因此你可以快速將它們應用到工作中。 與我之前的“快學”系列書籍類似,本書也會開門見山,告訴你解決編程問題所需要知道的內容,不會就某個范例比另外一個更有優勢而展開講解。我們會采用有序的且篇幅較小的方式展示信息,這樣需要信息時,你就可以快速檢索獲取。 假設您精通其他編程語言,例如C++,JavaScript,Objective C,PHP,或Ruby,通過本書,你將學習如何成為一個稱職的Java程序員。 我們會涵蓋Java開發者需要知道的方方面面,包括Java 8引入的,功能強大的lambda表達式和stream。我會告訴你哪里可以找到關于舊式概念的更多信息,你可能依然會在一些遺留代碼中看到這些舊式概念,但是我們不會就此展開。 使用Java的一個關鍵原因是解決并發編程。使用Java類庫中現成的并行算法和線程安全的數據結構,徹底改變了程序員處理并發編程的方式。我們會提供新的示例,告訴你如何使用強大的類庫特性代替那些易出錯,低水平的數據結構。 傳統的Java書籍關注UI編程——但是現在,很少有開發者在桌面計算機開發用戶界面了。如果你想將Java用在服務器端編程或者Android編程,你可以更有效地使用本書,不被桌面GUI代碼干擾。 最后,本書是寫給應用軟件編程者的,不是大學教科書,也不適合系統向導。本書包含了一些應用軟件編程者需要設法解決的問題,例如日志和文件使用,但是你不必學習如何實現鏈表或者開發一個Web服務器。 希望你喜歡對現代Java的快速介紹,同時希望它能提高你的Java開發工作生產效率并愉快地使用Java。 如果你發現本書錯誤或者有改進的建議,請訪問 http://horstmann.com/javaimpatient并留言。在頁面上,你也可以找到包含本書所有代碼示例的歸檔文件。
致謝 一如既往地感謝我的編輯Greg Doech,是他熱情地支持出版一本簡短書,介紹Java 8新特性。Dmitry Kirsanov和Alina Kirsanova再次以神奇的速度,細致地將XHTML手稿轉變成引人入勝的書。特別感謝優秀的評審團隊,他們發現了很多錯誤并給出深思熟慮的改進建議。他們是:Andres Almiray,Brian Goetz,Marty Hall,Mark Lawrence,Doug Lea,Simon Ritter,Yoshiki Shibata和Christian Ullenboom。
Cay Horstmann 瑞士, 比爾/比爾市 2015年1月 |
內容簡介:本書是《Java核心技術》的主要作者Cay S. Horstmann全面、細致介紹Java 8新特性的一本新書,包含了他一直以來對Java的真知灼見。本書首先介紹了Java編程中最基礎的內容,然后從Java 8最重要的新特性之一lambda表達式講起,帶領讀者一路探索和實踐Java 8的新特性。這當中不僅包含了針對數據處理的Stream和并發編程中增強的內容,還介紹了最新的時間日期API以及如何在Java中使用腳本語言。
本書內容淺顯易懂,文筆風趣幽默。書中包含了生動的、可實際應用的示例程序源代碼,讀者可以自行下載并運行,這種親身實踐有助于加深對Java 8新特性的理解。即便對于初學者來說,本書也是有具有很強的參考學習價值。對于那些有一定Java開發使用經驗的讀者來說,本書不僅可以鞏固基本Java編程核心基礎知識,同時還可與時俱進學習Java的新內容和技術。處于不同階段的讀者都能從本書中獲益。 |
目錄:第1章 基本的編程結構1 1.1 第一個程序 2 1.1.1 “Hello,World”程序解析 2 1.1.2 編譯與運行Java程序 3 1.1.3 方法調用 5 1.2 基本類型 7 1.2.1 整型 7 1.2.2 浮點類型 8 1.2.3 char型 9 1.2.4 布爾型 10 1.3 變量 10 1.3.1 變量的聲明 10 1.3.2 名稱 10 1.3.3 初始化 11 1.3.4 常量 11 1.4 算術操作 13 1.4.1 賦值 13 1.4.2 基本運算 14 1.4.3 數學方法 15 1.4.4 數字類型轉換 16 1.4.5 關系和邏輯操作符 17 1.4.6 大數 19 1.5 字符串 19 1.5.1 字符串連接 20 1.5.2 子字符串 21 1.5.3 字符串比較 21 1.5.4 數字與字符串轉換 23 1.5.5 String類API 24 1.5.6 編碼點(code point)和編碼單元(code unit) 25 1.6 輸入與輸出 26 1.6.1 讀取輸入 27 1.6.2 格式化輸出 28 1.7 控制流 30 1.7.1 分支 30 1.7.2 循環 32 1.7.3 跳出循環與繼續循環 34 1.7.4 局部變量作用域 36 1.8 數組和數組列表 38 1.8.1 使用數組 38 1.8.2 構造數組 39 1.8.3 數組列表 39 1.8.4 基本類型包裝類 41 1.8.5 增強的for循環 41 1.8.6 數組與數組列表的復制 42 1.8.7 數組算法 43 1.8.8 命令行參數 44 1.8.9 多維數組 45 1.9 功能分解 48 1.9.1 靜態方法的聲明與調用 48 1.9.2 數組參數與返回值 48 1.9.3 可變參數 49 練習 50 第2章 面向對象編程53 2.1 使用對象 54 2.1.1 Accessor(訪問器)和Mutator(更改器)方法 56 2.1.2 對象引用 56 2.2 實現類 58 2.2.1 實例變量 58 2.2.2 方法頭 59 2.2.3 方法體 59 2.2.4 實例方法調用 60 2.2.5 this引用 61 2.2.6 值調用 62 2.3 構造對象 63 2.3.1 實現構造函數 64 2.3.2 重載 64 2.3.3 調用另一個構造函數 65 2.3.4 默認初始化 66 2.3.5 實例變量初始化 66 2.3.6 final實例變量 67 2.3.7 無參構造函數 68 2.4 靜態變量和方法 69 2.4.1 靜態變量 69 2.4.2 靜態常量 70 2.4.3 靜態初始塊 71 2.4.4 靜態方法 71 2.4.5 工廠方法 73 2.5 包 73 2.5.1 包的聲明 74 2.5.2 類路徑 75 2.5.3 包作用域77 2.5.4 導入包 78 2.5.5 靜態導入 79 2.6 嵌套類 80 2.6.1 靜態嵌套類 80 2.6.2 內部類82 2.6.3 內部類的特殊語法 85 2.7 文檔注釋 86 2.7.1 插入注釋 86 2.7.2 類注釋 87 2.7.3 方法注釋 88 2.7.4 變量注釋 88 2.7.5 通用注釋 89 2.7.6 鏈接 89 2.7.7 包和概述注釋 90 2.7.8 注釋的提取 90 練習 91 第3章 接口和lambda表達式95 3.1 接口 96 3.1.1 聲明接口 96 3.1.2 實現接口 97 3.1.3 轉換為接口類型 99 3.1.4 強制類型轉換(cast)和instanceof操作符 99 3.1.5 繼承接口 100 3.1.6 實現多個接口 101 3.1.7 常量 101 3.2 靜態方法和默認方法 101 3.2.1 靜態方法 102 3.2.2 默認方法 102 3.2.3 解決默認方法沖突 103 3.3 接口示例 105 3.3.1 Comparable接口 105 3.3.2 Comparator接口 107 3.3.3 Runable接口 108 3.3.4 UI(User Interface)回調 109 3.4 lambda表達式 110 3.4.1 lambda表達式語法 110 3.4.2 函數式接口 111 3.5 方法引用和構造函數引用 112 3.5.1 方法引用 113 3.5.2 構造函數引用 114 3.6 使用lambda表達式 115 3.6.1 實現延遲執行 115 3.6.2 選擇函數式接口 116 3.6.3 實現自己的函數式接口 118 3.7 lambda表達式和變量作用域 119 3.7.1 lambda表達式的作用域 119 3.7.2 訪問來自閉合作用域的變量 120 3.8 高階函數 123 3.8.1 返回函數的方法 123 3.8.2 修改函數的方法 123 3.8.3 Comparator方法 124 3.9 局部內部類 125 3.9.1 局部類 125 3.9.2 匿名類 126 練習 . 127 第4章 繼承與反射 131 4.1 繼承一個類 132 4.1.1 父類與子類 132 4.1.2 定義和繼承子類方法 132 4.1.3 方法覆蓋 133 4.1.4 子類的構造 134 4.1.5 父類賦值 135 4.1.6 轉換 136 4.1.7 final方法和類 136 4.1.8 抽象方法和類 137 4.1.9 受保護訪問 138 4.1.10 匿名子類 139 4.1.11 繼承和默認方法 140 4.1.12 帶super的方法表達式 141 4.2 Object:終極父類 141 4.2.1 toString方法 142 4.2.2 equals方法 144 4.2.3 hashCode方法 147 4.2.4 克隆對象 148 4.3 枚舉 151 4.3.1 枚舉方法 152 4.3.2 構造函數、方法和域 153 4.3.3 實例的實現體 153 4.3.4 靜態成員 154 4.3.5 switch枚舉對象 155 4.4 運行時類型信息和資源 156 4.4.1 Class類 156 4.4.2 資源加載 160 4.4.3 類加載器 160 4.4.4 上下文類加載器 162 4.4.5 服務加載器 164 4.5 反射 165 4.5.1 枚舉類成員 165 4.5.2 對象檢查167 4.5.3 方法調用 167 4.5.4 對象構造 168 4.5.5 JavaBeans 169 4.5.6 使用數組 170 4.5.7 代理 172 練習 174 第5章 異常、斷言和日志處理 177 5.1 異常處理 178 5.1.1 異常拋出 178 5.1.2 異常繼承層次 179 5.1.3 已檢查異常的聲明 181 5.1.4 異常捕獲182 5.1.5 try-with-resources語句 183 5.1.6 finally子句 185 5.1.7 異常重拋和鏈接 186 5.1.8 堆棧蹤跡 188 5.1.9 Objects.requireNonNull方法 189 5.2 斷言 189 5.2.1 使用斷言 190 5.2.2 啟用和禁用斷言 191 5.3 記錄日志 191 5.3.1 采用Logger 192 5.3.2 日志記錄器 192 5.3.3 日志級別 192 5.3.4 其他日志記錄方法 193 5.3.5 日志記錄的配置項 195 5.3.6 日志處理器 196 5.3.7 過濾器和格式化器 199 練習 199 第6章 泛型編程 203 6.1 泛型類 204 6.2 泛型方法 205 6.3 類型限定 206 6.4 類型變異和通配符 207 6.4.1 子類型通配符 208 6.4.2 父類型通配符 209 6.4.3 帶類型變量的通配符 210 6.4.4 無限定通配符 212 6.4.5 通配符捕獲 212 6.5 Java虛擬機中的泛型 213 6.5.1 類型擦除 213 6.5.2 轉換插入 214 6.5.3 橋方法 215 6.6 泛型約束 216 6.6.1 無基本類型參數 217 6.6.2 所有類型在運行時都是原始的 217 6.6.3 不能實例化類型變量 218 6.6.4 不能構造參數化類型的數組 220 6.6.5 靜態上下文中的類類型變量不是有效的 221 6.6.6 類型擦除后的方法可能不沖突222 6.6.7 異常與泛型 223 6.7 反射與泛型 224 6.7.1 Class<T>類 224 6.7.2 虛擬機中的泛型類型信息 225 練習 227 第7章 集合233 7.1 集合類框架概要 234 7.2 迭代器 238 7.3 set 240 7.4 map 241 7.5 其他集合 245 7.5.1 Properties 245 7.5.2 位組 247 7.5.3 枚舉set和枚舉map 248 7.5.4 棧、隊列、雙端隊列、優先級隊列 249 7.5.5 弱哈希映射表 250 7.6 視圖 251 7.6.1 范圍(range) 251 7.6.2 空視圖和單例視圖 252 7.6.3 不可修改的視圖 252 練習 253 第8章 Stream 257 8.1 從迭代到Stream操作 258 8.2 創建Stream 259 8.3 filter、map和flatMap方法 261 8.4 提取子流和組合流 262 8.5 其他流轉換 263 8.6 簡單歸約 264 8.7 Optional類型 265 8.7.1 如何使用Optional類型值 265 8.7.2 如何不使用Optional類型值 266 8.7.3 創建Optional類型值 267 8.7.4 使用flatMap來組合可選值函數 267 8.8 收集結果 268 8.9 將結果收集到map中 270 8.10 分組和分片 271 8.11 下游收集器 272 8.12 歸約操作 274 8.13 基本類型流 276 8.14 并行流 278 練習 280 第9章 輸入與輸出處理285 9.1 輸入/輸出流:Reader和Writer 286 9.1.1 獲取流對象 286 9.1.2 讀取字節 287 9.1.3 寫字節 288 9.1.4 字符集編碼 288 9.1.5 文本輸入 291 9.1.6 文本輸出 292 9.1.7 讀寫二進制數據 294 9.1.8 隨機存取文件 295 9.1.9 內存映射文件 295 9.1.10 文件鎖 296 9.2 路徑、文件和目錄 297 9.2.1 路徑 297 9.2.2 創建文件和目錄 299 9.2.3 復制、移動和刪除文件 300 9.2.4 訪問目錄內容 301 9.2.5 ZIP文件系統 304 9.3 URL連接 305 9.4 正則表達式 307 9.4.1 正則表達式語法 307 9.4.2 匹配一個或多個 311 9.4.3 分組 312 9.4.4 消除或替換匹配結果 313 9.4.5 標記 314 9.5 序列化 315 9.5.1 Serializable接口 315 9.5.2 瞬態實例變量 317 9.5.3 readObject和writeObject方法 317 9.5.4 readResolve和writeReplace方法 319 9.5.5 版本化 320 練習 321 第10章 并發編程325 10.1 并發任務 326 10.1.1 運行任務 326 10.1.2 Future和Executor服務 328 10.2 線程安全 331 10.2.1 可見性 331 10.2.2 競爭條件 333 10.2.3 安全并發的策略 336 10.2.4 不可變類 336 10.3 并行算法 337 10.3.1 并行流 338 10.3.2 并行數組操作 338 10.4 線程安全的數據結構 339 10.4.1 ConcurrentHashMap . 340 10.4.2 阻塞隊列 341 10.4.3 其他線程安全的數據結構 343 10.5 原子值 344 10.6 鎖 346 10.6.1 可重入鎖(ReentrantLock) 347 10.6.2 synchronized關鍵字348 10.6.3 條件等待 350 10.7 線程 352 10.7.1 啟動線程 352 10.7.2 線程中斷 353 10.7.3 線程變量 355 10.7.4 線程的其他屬性 356 10.8 異步計算 356 10.8.1 UI回調中的長期運行任務 356 10.8.2 可完成的future 358 10.9 進程 361 10.9.1 構建進程 361 10.9.2 運行進程 363 練習 364 第11章 注解 371 11.1 使用注解 372 11.1.1 注解元素 372 11.1.2 多注解和重復注解 373 11.1.3 注解聲明 374 11.1.4 注解類型用途 375 11.1.5 明確接收者 376 11.2 定義注解 378 11.3 標準注解 380 11.3.1 編譯相關的注解 381 11.3.2 資源管理相關的注解 382 11.3.3 元注解 382 11.4 運行時注解處理 384 11.5 源碼級注解處理 387 11.5.1 注解處理器 388 11.5.2 語言模型API 388 11.5.3 使用注解生成源碼 389 練習 392 第12章 日期和時間API 395 12.1 時間線 396 12.2 本地日期 398 12.3 日期調整器 401 12.4 本地時間 402 12.5 時區時間 403 12.6 格式化和解析 406 12.7 應對遺留代碼 409 練習 411 第13章 國際化 413 13.1 本地化 414 13.1.1 指定本地化 414 13.1.2 默認locale 417 13.1.3 顯示名稱 418 13.2 數字格式化 418 13.3 貨幣符號 419 13.4 日期和時間格式化 420 13.5 排序和規格化 422 13.6 消息格式化 424 13.7 資源束 426 13.7.1 組織資源束 426 13.7.2 資源束類 428 13.8 字符集編碼 429 13.9 首選項 430 練習 432 第14章 編譯與腳本 435 14.1 編譯器API 435 14.1.1 調用編譯器 436 14.1.2 啟動編譯任務 436 14.1.3 從內存讀取源文件 437 14.1.4 向內存寫入字節碼 438 14.1.5 捕獲診斷信息 440 14.2 腳本API 440 14.2.1 獲取腳本引擎 440 14.2.2 綁定 441 14.2.3 重定向輸入與輸出 442 14.2.4 調用腳本函數和方法 443 14.2.5 編譯腳本 444 14.3 Nashorn腳本引擎 445 14.3.1 從命令行運行Nashorn 445 14.3.2 調用get、set和重載方法 446 14.3.3 構造Java對象 447 14.3.4 JavaScript和Java中的字符串 449 14.3.5 數字 449 14.3.6 使用數組 450 14.3.7 列表與映射 451 14.3.8 lambda表達式 452 14.3.9 繼承Java類與實現Java接口 453 14.3.10 異常 455 14.4 shell腳本與Nashorn 455 14.4.1 執行shell命令 456 14.4.2 字符串插值 456 14.4.3 腳本輸入 457 練習 458 |
序: |
|