Java核心技術(shù) 卷II 高級特性(原書第11版)
定 價:149 元
叢書名:Java核心技術(shù)系列
- 作者:[美]凱·S. 霍斯特曼(Cay S. Horstmann)
- 出版時間:2019/12/1
- ISBN:9787111643432
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書針對Java 11進行了修訂,涵蓋了完整的對高級UI特性、企業(yè)編程、網(wǎng)絡(luò)、安全和Java強大的模塊系統(tǒng)等內(nèi)容的討論。
書中對Java復(fù)雜的新特性進行了深入而全面的研究,展示了如何使用它們來構(gòu)建具有專業(yè)品質(zhì)的應(yīng)用程序,作者所設(shè)計的經(jīng)過全面完整測試的示例反映了當(dāng)今的Java風(fēng)格和*佳實踐,這些示例設(shè)計精心,使其易于理解并且實踐價值極高,從而使讀者可以以這些示例為基礎(chǔ)來編寫自己的代碼。
譯者序
前言
致謝
第1章 Java 8的流庫 1
1.1 從迭代到流的操作 1
1.2 流的創(chuàng)建 3
1.3 f?ilter、map和f?latMap方法 8
1.4 抽取子流和組合流 9
1.5 其他的流轉(zhuǎn)換 10
1.6 簡單約簡 11
1.7 Optional類型 13
1.7.1 獲取Optional值 13
1.7.2 消費Optional值 13
1.7.3 管道化Optional值 14
1.7.4 不適合使用Optional值的方式 15
1.7.5 創(chuàng)建Optional值 16
1.7.6 用f?latMap構(gòu)建Optional值的函數(shù) 16
1.7.7 將Optional轉(zhuǎn)換為流 17
1.8 收集結(jié)果 19
1.9 收集到映射表中 24
1.10 群組和分區(qū) 27
1.11 下游收集器 28
1.12 約簡操作 32
1.13 基本類型流 34
1.14 并行流 39
第2章 輸入與輸出 43
2.1 輸入/輸出流 43
2.1.1 讀寫字節(jié) 43
2.1.2 完整的流家族 46
2.1.3 組合輸入/輸出流過濾器 50
2.1.4 文本輸入與輸出 53
2.1.5 如何寫出文本輸出 53
2.1.6 如何讀入文本輸入 55
2.1.7 以文本格式存儲對象 56
2.1.8 字符編碼方式 59
2.2 讀寫二進制數(shù)據(jù) 61
2.2.1 DataInput和DataOutput接口 61
2.2.2 隨機訪問文件 63
2.2.3 ZIP文檔 67
2.3 對象輸入/輸出流與序列化 70
2.3.1 保存和加載序列化對象 70
2.3.2 理解對象序列化的文件格式 74
2.3.3 修改默認(rèn)的序列化機制 79
2.3.4 序列化單例和類型安全的枚舉 81
2.3.5 版本管理 82
2.3.6 為克隆使用序列化 84
2.4 操作文件 86
2.4.1 Path 86
2.4.2 讀寫文件 89
2.4.3 創(chuàng)建文件和目錄 90
2.4.4 復(fù)制、移動和刪除文件 91
2.4.5 獲取文件信息 92
2.4.6 訪問目錄中的項 94
2.4.7 使用目錄流 95
2.4.8 ZIP文件系統(tǒng) 98
2.5 內(nèi)存映射文件 99
2.5.1 內(nèi)存映射文件的性能 99
2.5.2 緩沖區(qū)數(shù)據(jù)結(jié)構(gòu) 105
2.6 文件加鎖機制 107
2.7 正則表達式 109
2.7.1 正則表達式語法 109
2.7.2 匹配字符串 112
2.7.3 找出多個匹配 115
2.7.4 用分隔符來分割 117
2.7.5 替換匹配 117
第3章 XML 120
3.1 XML概述 120
3.2 XML文檔的結(jié)構(gòu) 122
3.3 解析XML文檔 124
3.4 驗證XML文檔 133
3.4.1 文檔類型定義 134
3.4.2 XML Schema 140
3.4.3 一個實踐示例 142
3.5 使用XPath來定位信息 148
3.6 使用命名空間 152
3.7 流機制解析器 154
3.7.1 使用SAX解析器 154
3.7.2 使用StAX解析器 159
3.8 生成XML文檔 162
3.8.1 不帶命名空間的文檔 162
3.8.2 帶命名空間的文檔 163
3.8.3 寫出文檔 163
3.8.4 使用StAX寫出XML文檔 165
3.8.5 示例:生成SVG文件 170
3.9 XSL轉(zhuǎn)換 171
第4章 網(wǎng)絡(luò) 180
4.1 連接到服務(wù)器 180
4.1.1 使用telnet 180
4.1.2 用Java連接到服務(wù)器 182
4.1.3 套接字超時 184
4.1.4 因特網(wǎng)地址 185
4.2 實現(xiàn)服務(wù)器 186
4.2.1 服務(wù)器套接字 186
4.2.2 為多個客戶端服務(wù) 189
4.2.3 半關(guān)閉 192
4.2.4 可中斷套接字 193
4.3 獲取Web數(shù)據(jù) 199
4.3.1 URL和URI 199
4.3.2 使用URLConnection獲取信息 201
4.3.3 提交表單數(shù)據(jù) 207
4.4 HTTP客戶端 215
4.5 發(fā)送E-mail 221
第5章 數(shù)據(jù)庫編程 225
5.1 JDBC的設(shè)計 225
5.1.1 JDBC驅(qū)動程序類型 226
5.1.2 JDBC的典型用法 227
5.2 結(jié)構(gòu)化查詢語言 227
5.3 JDBC配置 232
5.3.1 數(shù)據(jù)庫URL 232
5.3.2 驅(qū)動程序JAR文件 233
5.3.3 啟動數(shù)據(jù)庫 233
5.3.4 注冊驅(qū)動器類 234
5.3.5 連接到數(shù)據(jù)庫 234
5.4 使用JDBC語句 237
5.4.1 執(zhí)行SQL語句 237
5.4.2 管理連接、語句和結(jié)果集 240
5.4.3 分析SQL異常 240
5.4.4 組裝數(shù)據(jù)庫 242
5.5 執(zhí)行查詢操作 246
5.5.1 預(yù)備語句 246
5.5.2 讀寫LOB 252
5.5.3 SQL轉(zhuǎn)義 253
5.5.4 多結(jié)果集 254
5.5.5 獲取自動生成的鍵 255
5.6 可滾動和可更新的結(jié)果集 256
5.6.1 可滾動的結(jié)果集 256
5.6.2 可更新的結(jié)果集 258
5.7 行集 261
5.7.1 構(gòu)建行集 262
5.7.2 被緩存的行集 262
5.8 元數(shù)據(jù) 265
5.9 事務(wù) 274
5.9.1 用JDBC對事務(wù)編程 274
5.9.2 保存點 275
5.9.3 批量更新 275
5.9.4 高級SQL類型 277
5.10 Web與企業(yè)應(yīng)用中的連接管理 278
第6章 日期和時間API 280
6.1 時間線 280
6.2 本地日期 284
6.3 日期調(diào)整器 288
6.4 本地時間 289
6.5 時區(qū)時間 290
6.6 格式化和解析 294
6.7 與遺留代碼的互操作 298
第7章 國際化 300
7.1 locale 300
7.1.1 為什么需要locale 300
7.1.2 指定locale 301
7.1.3 默認(rèn)locale 303
7.1.4 顯示名字 304
7.2 數(shù)字格式 305
7.2.1 格式化數(shù)字值 306
7.2.2 貨幣 310
7.3 日期和時間 311
7.4 排序和規(guī)范化 318
7.5 消息格式化 323
7.5.1 格式化數(shù)字和日期 324
7.5.2 選擇格式 325
7.6 文本輸入和輸出 327
7.6.1 文本文件 327
7.6.2 行結(jié)束符 327
7.6.3 控制臺 328
7.6.4 日志文件 328
7.6.5 UTF-8字節(jié)順序標(biāo)志 329
7.6.6 源文件的字符編碼 329
7.7 資源包 330
7.7.1 定位資源包 330
7.7.2 屬性文件 331
7.7.3 包類 332
7.8 一個完整的例子 333
第8章 腳本、編譯與注解處理 348
8.1 Java平臺的腳本機制 348
8.1.1 獲取腳本引擎 348
8.1.2 腳本計算與綁定 349
8.1.3 重定向輸入和輸出 351
8.1.4 調(diào)用腳本的函數(shù)和方法 352
8.1.5 編譯腳本 353
8.1.6 示例:用腳本處理GUI事件 354
8.2 編譯器API 358
8.2.1 調(diào)用編譯器 358
8.2.2 發(fā)起編譯任務(wù) 359
8.2.3 捕獲診斷消息 359
8.2.4 從內(nèi)存中讀取源文件 360
8.2.5 將字節(jié)碼寫出到內(nèi)存中 360
8.2.6 示例:動態(tài)Java代碼生成 362
8.3 使用注解 367
8.3.1 注解簡介 368
8.3.2 示例:注解事件處理器 369
8.4 注解語法 373
8.4.1 注解接口 373
8.4.2 注解 375
8.4.3 注解各類聲明 376
8.4.4 注解類型用法 377
8.4.5 注解this 378
8.5 標(biāo)準(zhǔn)注解 379
8.5.1 用于編譯的注解 380
8.5.2 用于管理資源的注解 381
8.5.3 元注解 381
8.6 源碼級注解處理 383
8.6.1 注解處理器 384
8.6.2 語言模型API 384
8.6.3 使用注解來生成源碼 385
8.7 字節(jié)碼工程 388
8.7.1 修改類文件 388
8.7.2 在加載時修改字節(jié)碼 393
第9章 Java平臺模塊系統(tǒng) 395
9.1 模塊的概念 395
9.2 對模塊命名 396
9.3 模塊化的“Hello, World!”程序 397
9.4 對模塊的需求 398
9.5 導(dǎo)出包 400
9.6 模塊化的JAR 403
9.7 模塊和反射式訪問 404
9.8 自動模塊 406
9.9 不具名模塊 408
9.10 用于遷移的命令行標(biāo)識 409
9.11 傳遞的需求和靜態(tài)的需求 410
9.12 限定導(dǎo)出和開放 411
9.13 服務(wù)加載 412
9.14 操作模塊的工具 414
第10章 安全 417
10.1 類加載器 417
10.1.1 類加載過程 418
10.1.2 類加載器的層次結(jié)構(gòu) 419
10.1.3 將類加載器用作命名空間 420
10.1.4 編寫你自己的類加載器 421
10.1.5 字節(jié)碼校驗 426
10.2 安全管理器與訪問權(quán)限 429
10.2.1 權(quán)限檢查 429
10.2.2 Java平臺安全性 431
10.2.3 安全策略文件 434
10.2.4 定制權(quán)限 439
10.2.5 實現(xiàn)權(quán)限類 440
10.3 用戶認(rèn)證 446
10.3.1 JAAS框架 446
10.3.2 JAAS登錄模塊 451
10.4 數(shù)字簽名 459
10.4.1 消息摘要 460
10.4.2 消息簽名 463
10.4.3 校驗簽名 465
10.4.4 認(rèn)證問題 467
10.4.5 證書簽名 469
10.4.6 證書請求 469
10.4.7 代碼簽名 470
10.5 加密 472
10.5.1 對稱密碼 473
10.5.2 密鑰生成 474
10.5.3 密碼流 478
10.5.4 公共密鑰密碼 479
第11章 高級Swing和圖形化編程 483
11.1 表格 483
11.1.1 一個簡單表格 483
11.1.2 表格模型 486
11.1.3 對行和列的操作 489
11.1.4 單元格的繪制和編輯 503
11.2 樹 513
11.2.1 簡單的樹 514
11.2.2 節(jié)點枚舉 526
11.2.3 繪制節(jié)點 528
11.2.4 監(jiān)聽樹事件 530
11.2.5 定制樹模型 536
11.3 高級AWT 544
11.3.1 繪圖操作流程 544
11.3.2 形狀 546
11.3.3 區(qū)域 560
11.3.4 筆畫 561
11.3.5 著色 567
11.3.6 坐標(biāo)變換 569
11.3.7 剪切 574
11.3.8 透明與組合 575
11.4 像素圖 583
11.4.1 圖像的讀取器和寫入器 583
11.4.2 圖像處理 591
11.5 打印 604
11.5.1 圖形打印 604
11.5.2 打印多頁文件 612
11.5.3 打印服務(wù)程序 620
11.5.4 流打印服務(wù)程序 622
11.5.5 打印屬性 625
第12章 本地方法 632
12.1 從Java程序中調(diào)用C函數(shù) 633
12.2 數(shù)值參數(shù)與返回值 637
12.3 字符串參數(shù) 639
12.4 訪問域 644
12.4.1 訪問實例域 644
12.4.2 訪問靜態(tài)域 648
12.5 編碼簽名 648
12.6 調(diào)用Java方法 650
12.6.1 實例方法 650
12.6.2 靜態(tài)方法 653
12.6.3 構(gòu)造器 654
12.6.4 另一種方法調(diào)用 654
12.7 訪問數(shù)組元素 656
12.8 錯誤處理 659
12.9 使用調(diào)用API 663
12.10 完整的示例:訪問Windows注冊表 668
12.10.1 Windows注冊表概述 668
12.10.2 訪問注冊表的Java平臺接口 669
12.10.3 以本地方法實現(xiàn)注冊表訪問函數(shù) 670