寫給大忙人看的Java核心技術 写给大忙人看的Java核心技术

凱.S.霍斯特曼 (Cay S. Horstmann)

下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

<內容簡介>

《寫給大忙人看的Java核心技術》為經典著作Core Java作者Cay S. Horstmann的全新力作,以關鍵的核心技術為著眼點,以全局高度提煉語言精髓,以高濃度、高含金量的方式對Java 8新特性進行細緻講解,將其沉浸於Java多年的真知灼見蘊藏於書中,既紮實覆蓋Java編程的基礎知識,更獨具匠心地從Java 8極其重要的新特性之一lambda表達式發端,帶領讀者一路探索和實踐Java 8的諸多新特性,諸如針對數據處理的Stream、並發編程中的增強部分、全新的時間/日期API,以及腳本語言在Java中的使用。

“For the Impatient”系列風格鮮明,除悉數出自大師之手外,更以文筆輕鬆、易讀易懂、富含生動且可用於實踐的示例程序(下載源代碼後可直接運行)見長。這種親身實踐的講授模式,非常便於各階層讀者加深對技術的理解和掌握,初學者可用來參考入門,有開發經驗者也可用來鞏固編程核心知識,或與時俱進地把握技術發展現狀與未來趨勢。

《寫給大忙人看的Java核心技術》適合有一定Java開發經驗的工程師或者架構師閱讀,也可以作為Java新特性的參考手冊。

 

<作者簡介>

 

Cay S. Horstmann,是名著Core Java?, Volumes I and II的主要作者,同時也是《寫給大忙人的Java SE 8》(Java SE 8 for the Really Impatient)與《快學Scala》(Scala for the impatient)兩本書的作者,。他還編寫了一系列針對專業編程人員和計算機專業學生的書籍。他是聖荷西州立大學計算機科學專業的一名教授,也是一位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