Java核心技術(shù) 卷II 高級(jí)特性(原書第11版)
定 價(jià):149 元
叢書名:Java核心技術(shù)系列
- 作者:[美]凱·S. 霍斯特曼(Cay S. Horstmann)
- 出版時(shí)間:2019/12/1
- ISBN:9787111643432
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書針對(duì)Java 11進(jìn)行了修訂,涵蓋了完整的對(duì)高級(jí)UI特性、企業(yè)編程、網(wǎng)絡(luò)、安全和Java強(qiáng)大的模塊系統(tǒng)等內(nèi)容的討論。
書中對(duì)Java復(fù)雜的新特性進(jìn)行了深入而全面的研究,展示了如何使用它們來構(gòu)建具有專業(yè)品質(zhì)的應(yīng)用程序,作者所設(shè)計(jì)的經(jīng)過全面完整測(cè)試的示例反映了當(dāng)今的Java風(fēng)格和*佳實(shí)踐,這些示例設(shè)計(jì)精心,使其易于理解并且實(shí)踐價(jià)值極高,從而使讀者可以以這些示例為基礎(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 簡(jiǎn)單約簡(jiǎn) 11
1.7 Optional類型 13
1.7.1 獲取Optional值 13
1.7.2 消費(fèi)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 約簡(jiǎn)操作 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 以文本格式存儲(chǔ)對(duì)象 56
2.1.8 字符編碼方式 59
2.2 讀寫二進(jìn)制數(shù)據(jù) 61
2.2.1 DataInput和DataOutput接口 61
2.2.2 隨機(jī)訪問文件 63
2.2.3 ZIP文檔 67
2.3 對(duì)象輸入/輸出流與序列化 70
2.3.1 保存和加載序列化對(duì)象 70
2.3.2 理解對(duì)象序列化的文件格式 74
2.3.3 修改默認(rèn)的序列化機(jī)制 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ù)制、移動(dòng)和刪除文件 91
2.4.5 獲取文件信息 92
2.4.6 訪問目錄中的項(xiàng) 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 文件加鎖機(jī)制 107
2.7 正則表達(dá)式 109
2.7.1 正則表達(dá)式語法 109
2.7.2 匹配字符串 112
2.7.3 找出多個(gè)匹配 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 驗(yàn)證XML文檔 133
3.4.1 文檔類型定義 134
3.4.2 XML Schema 140
3.4.3 一個(gè)實(shí)踐示例 142
3.5 使用XPath來定位信息 148
3.6 使用命名空間 152
3.7 流機(jī)制解析器 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 套接字超時(shí) 184
4.1.4 因特網(wǎng)地址 185
4.2 實(shí)現(xiàn)服務(wù)器 186
4.2.1 服務(wù)器套接字 186
4.2.2 為多個(gè)客戶端服務(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è)計(jì) 225
5.1.1 JDBC驅(qū)動(dòng)程序類型 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ū)動(dòng)程序JAR文件 233
5.3.3 啟動(dòng)數(shù)據(jù)庫 233
5.3.4 注冊(cè)驅(qū)動(dòng)器類 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 獲取自動(dòng)生成的鍵 255
5.6 可滾動(dòng)和可更新的結(jié)果集 256
5.6.1 可滾動(dòng)的結(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對(duì)事務(wù)編程 274
5.9.2 保存點(diǎn) 275
5.9.3 批量更新 275
5.9.4 高級(jí)SQL類型 277
5.10 Web與企業(yè)應(yīng)用中的連接管理 278
第6章 日期和時(shí)間API 280
6.1 時(shí)間線 280
6.2 本地日期 284
6.3 日期調(diào)整器 288
6.4 本地時(shí)間 289
6.5 時(shí)區(qū)時(shí)間 290
6.6 格式化和解析 294
6.7 與遺留代碼的互操作 298
第7章 國(guó)際化 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 日期和時(shí)間 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 控制臺(tái) 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 一個(gè)完整的例子 333
第8章 腳本、編譯與注解處理 348
8.1 Java平臺(tái)的腳本機(jī)制 348
8.1.1 獲取腳本引擎 348
8.1.2 腳本計(jì)算與綁定 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 示例:動(dòng)態(tài)Java代碼生成 362
8.3 使用注解 367
8.3.1 注解簡(jiǎn)介 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 源碼級(jí)注解處理 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 在加載時(shí)修改字節(jié)碼 393
第9章 Java平臺(tái)模塊系統(tǒng) 395
9.1 模塊的概念 395
9.2 對(duì)模塊命名 396
9.3 模塊化的“Hello, World!”程序 397
9.4 對(duì)模塊的需求 398
9.5 導(dǎo)出包 400
9.6 模塊化的JAR 403
9.7 模塊和反射式訪問 404
9.8 自動(dòng)模塊 406
9.9 不具名模塊 408
9.10 用于遷移的命令行標(biāo)識(shí) 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é)碼校驗(yàn) 426
10.2 安全管理器與訪問權(quán)限 429
10.2.1 權(quán)限檢查 429
10.2.2 Java平臺(tái)安全性 431
10.2.3 安全策略文件 434
10.2.4 定制權(quán)限 439
10.2.5 實(shí)現(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 校驗(yàn)簽名 465
10.4.4 認(rèn)證問題 467
10.4.5 證書簽名 469
10.4.6 證書請(qǐng)求 469
10.4.7 代碼簽名 470
10.5 加密 472
10.5.1 對(duì)稱密碼 473
10.5.2 密鑰生成 474
10.5.3 密碼流 478
10.5.4 公共密鑰密碼 479
第11章 高級(jí)Swing和圖形化編程 483
11.1 表格 483
11.1.1 一個(gè)簡(jiǎn)單表格 483
11.1.2 表格模型 486
11.1.3 對(duì)行和列的操作 489
11.1.4 單元格的繪制和編輯 503
11.2 樹 513
11.2.1 簡(jiǎn)單的樹 514
11.2.2 節(jié)點(diǎn)枚舉 526
11.2.3 繪制節(jié)點(diǎn) 528
11.2.4 監(jiān)聽樹事件 530
11.2.5 定制樹模型 536
11.3 高級(jí)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 訪問實(shí)例域 644
12.4.2 訪問靜態(tài)域 648
12.5 編碼簽名 648
12.6 調(diào)用Java方法 650
12.6.1 實(shí)例方法 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 錯(cuò)誤處理 659
12.9 使用調(diào)用API 663
12.10 完整的示例:訪問Windows注冊(cè)表 668
12.10.1 Windows注冊(cè)表概述 668
12.10.2 訪問注冊(cè)表的Java平臺(tái)接口 669
12.10.3 以本地方法實(shí)現(xiàn)注冊(cè)表訪問函數(shù) 670