Java語言導學(原書第5版)

Java語言導學(原書第5版)

《Java語言導學(原書第5版)》是2015年7月機械工業出版社出版的圖書,作者是沙倫.比奧卡.扎卡沃。

基本介紹

  • 書名:Java語言導學(原書第5版)
  • 作者:沙倫.比奧卡.扎卡沃
  • ISBN:9787111503927
  • 定價:79元
  • 出版社:機械工業出版社
  • 出版時間:2015年7月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

作為幫助讀者精通Java程式設計語言的學習嚮導,本書清晰地介紹了面向對象的編程概念、語言基礎、類和對象、接口和繼承、泛型、包、數字和字元串、異常、集合等內容,同時涵蓋了JavaSE7的新特性,比如NIO.2的內容等。每章的後面都有問題和練習,幫助讀者鞏固所學知識,學以致用。此外,本書的附錄中還給出如何準備Java程式語言認證考試方面的內容。本書可作為高等院校計算機等相關專業的基礎教材,也可作為編程初學者和中級程式設計師的參考資料。

圖書目錄

目 錄
The Java Tutorial:A Short Course on the Basics
出版者的話
譯者序
前言
第1 章 快速入門·1
1.1 關於Java 技術1
1.1.1 Java 程式語言1
1.1.2 Java 平台·2
1.1.3 Java 技術的功能3
1.1.4 Java 技術的優勢3
1.2 “Hello World!”實例程式4
1.2.1 用NetBeans IDE 開發“Hello World !”4
1.2.2 在Microsoft Windows 中開發“Hello World !”9
1.2.3 在Solaris 和Linux 中開發“Hello World !”12
1.3 “Hello World !”實例程式剖析·14
1.3.1 源定備去碼注釋·15
1.3.2 HelloWorldApp 類定義15
1.3.3 main 方法16
1.4 常見問題(及其解決方案)16
1.4.1 編譯器問題16
1.4.2 運行時問題18
1.5 問題和練習:快速入門·19
第2 章 面向對象的編程概念·20
2.1 對象20
2.2 類22
2.3 繼承23
2.4 接口23
2.5 包24
2.6 問題和練習:面向對象的編程概念24
第3 章 語櫃虹禁市言基礎·26
3.1 變數26
3.1.1 命名·27
3.1.2 基本數據類型27
3.1.3 數組·30
3.1.4 小結·33
3.1.5 問題和練習:變數·34
3.2 運算符·34
3.2.1 賦值運算符算術運算符和一元運算符·35
3.2.2 等式運算符、關係運算符條件運算符·37
3.2.3 位運算符和移位運算符·39
3.2.4 小結·39
3.2.5 問題和練習:運算符·40
3.3 表達式、語句和塊41
3.3.1 表達式·41
3.3.2 語句·42
3.3.3 塊·42
3.3.4 問題和練習:表達式、語句和塊·43
3.4 控制流語句·43
3.4.1 if-then 語句和if-then-else語句43
3.4.2 switch 語句44
3.4.3 while 語句和do-while 語句·48
3.4.4 for 語句·49
3.4.5 分支語句·50
3.4.6 小結·52
3.4.7 問題和少屑鞏練習:控制流語句·53
第4 章 類和對象·54
4.1 類54
4.1.1 聲明類·55
4.1.2 聲明成員變數56
4.1.3 定義方法·57
4.1.4 構建構造器58
4.1.5 將訊息傳給方法或構造器·59
4.2 對象62
4.2.1 創建對象·63
4.2.2 使用對象·65
4.3 局遷諒類的更多細節·67
4.3.1 從方法返回值67
4.3.2 使用this 關鍵字68
4.3.3 控制對類成員的訪問·69
4.3.4 實例和類成員70
4.3.5 初始化欄位73
4.3.6 小結·74
4.3.7 問題和練危組習:類75
4.3.8 問題和練習:對象·76
4.4 嵌套類·76
4.4.1 為什麼使用嵌套類·77
4.4.2 靜態嵌套類77
4.4.3 內部類·77
4.4.4 內部類實例78
4.4.5 小結·79
4.4.6 問題和練習:嵌套類·79
4.5 枚榜拜設舉類型·80
4.5.1 問題和練習:枚舉類型·82
4.6 註解82
4.6.1 文檔·82
4.6.2 編譯器使用的註解·83
4.6.3 註解的處理84
4.6.4 問題和促充符和練習:註解·85
第5 章 接口與繼承·86
5.1 接口86
5.1.1 Java 語言的接口86
5.1.2 將接口用作API·87
5.1.3 接口和多重繼承87
5.1.4 定義接口·87
5.1.5 實現接口·88
5.1.6 將接口用作類型89
5.1.7 重寫接口·90
5.1.8 小結·90
5.1.9 問題和練習:接口·91
5.2 繼承91
5.2.1 Java 平台中類的層次結構·91
5.2.2 繼承實例·92
5.2.3 子類能做什麼93
5.2.4 超類的私有成員93
5.2.5 轉換對象·93
5.2.6 覆蓋和禁止方法94
5.2.7 多態性·95
5.2.8 禁止欄位·97
5.2.9 使用super 關鍵字97
5.2.10 將對象用作超類98
5.2.11 編寫final 類和方法·101
5.2.12 抽象方法和類101
5.2.13 小結·103
5.2.14 問題和練習:繼承·103
第6 章 泛型105
6.1 為什麼用泛型·105
6.2 泛型類型·106
6.2.1 一個簡單的Box 類106
6.2.2 Box 類的泛型版本·106
6.2.3 類型參數命名約定·107
6.2.4 泛型類型的調用和實例化·107
6.2.5 鑽石運算符107
6.2.6 多個類型參數108
6.2.7 參數化類型108
6.2.8 原生類型·108
6.3 泛型方法· 110
6.4 受限類型形式參數 110
6.4.1 多重限制· 111
6.4.2 泛型方法和受限類型形式參數· 112
6.5 泛型、繼承和子類型 112
6.5.1 泛型類和子類型 113
6.6 類型推導· 114
6.6.1 類型推導和泛型方法· 114
6.6.2 類型推導和泛型類的實例化 115
6.6.3 類型推導與泛型類和非泛型類的泛型構造函式 115
6.7 通配符· 116
6.7.1 上界通配符 116
6.7.2 無界通配符 117
6.7.3 下界通配符 118
6.7.4 通配符和子類型 118
6.7.5 通配符匹配和輔助方法· 119
6.7.6 通配符使用指南121
6.8 類型擦除·122
6.8.1 泛型類型的擦除122
6.8.2 泛型方法的擦除123
6.8.3 類型擦除效果和橋方法·124
6.8.4 不可具體化類型125
6.9 泛型的局限性·128
6.9.1 不能用基本數據類型實例化泛型類型·128
6.9.2 不能創建類型參數實例·128
6.9.3 不能聲明類型為“類型參數”的靜態欄位128
6.9.4 對參數化類型不能用類型轉換或instanceof 運算符129
6.9.5 不能創建參數化類型數組·129
6.9.6 不能創建、捕獲或拋出參數化類型的對象130
6.9.7 每次重載時其形式參數類型都被擦為相同的原生類型的方法不能重載130
6.10 問題和練習:泛型130
第7 章 程式包133
7.1 程式包的創建·134
7.2 程式包的命名·135
7.2.1 命名約定·135
7.3 程式包成員的使用136
7.3.1 用完全限定名指代程式包成員136
7.3.2 導入包成員136
7.3.3 導入整個程式包136
7.3.4 包的表面層次結構·137
7.3.5 命名歧義性137
7.3.6 靜態import 語句·137
7.4 源檔案和類檔案的管理·138
7.4.1 設定CLASSPATH 系統變數139
7.5 小結140
7.6 問題和練習:創建和使用包·140
第8 章 數字和字元串·141
8.1 數字141
8.1.1 Number 類·141
8.1.2 格式化數字列印輸出·143
8.1.3 其他數學運算方法·146
8.1.4 自動裝箱和拆箱149
8.1.5 小結·150
8.1.6 問題和練習:數字·151
8.2 字元151
8.2.1 轉義字元·152
8.3 字元串·153
8.3.1 創建字元串153
8.3.2 字元串長度153
8.3.3 字元串連線154
8.3.4 創建格式字元串155
8.3.5 數字和字元串之間的轉換·155
8.3.6 操作字元串中的字元·157
8.3.7 比較字元串和字元串的子串160
8.3.8 StringBuilder 類·161
8.3.9 小結·164
8.3.10 問題和練習:字元和字元串·165
第9 章 異常166
9.1 什麼是異常·166
9.2 捕獲或指明規定167
9.2.1 三類異常·167
9.2.2 繞過捕獲或指明168
9.3 捕獲和處理異常168
9.3.1 try 塊·169
9.3.2 catch 塊169
9.3.3 finally 塊170
9.3.4 try-with-resources 語句171
9.3.5 匯總·174
9.4 指明一個方法拋出的異常·176
9.5 如何拋出異常·176
9.5.1 throw 語句·177
9.5.2 Throwable 類及其子類177
9.5.3 Error 類178
9.5.4 Exception 類178
9.5.5 鏈式異常·178
9.5.6 創建異常類179
9.6 未檢查異常:爭議180
9.7 異常的優點·180
9.7.1 優點1:把錯誤處理代碼和“正規”代碼分離開181
9.7.2 優點2:根據調用棧上傳錯誤182
9.7.3 優點3:對錯誤類型進行分組和加以區分183
9.8 小結184
9.9 問題和練習:異常184
第10 章 基本I/O 和NIO.2186
10.1 I/O 流186
10.1.1 位元組流·187
10.1.2 字元流·188
10.1.3 緩衝流·190
10.1.4 掃描和格式化191
10.1.5 命令行I/O·195
10.1.6 數據流·197
10.1.7 對象流·198
10.2 檔案I/O(以NIO.2 為特徵)199
10.2.1 什麼是路徑(以及其他檔案系統情況)200
10.2.2 Path 類·201
10.2.3 檔案操作206
10.2.4 檢查檔案或目錄209
10.2.5 刪除檔案或目錄210
10.2.6 複製檔案或目錄210
10.2.7 移動檔案或目錄 211
10.2.8 管理元數據(檔案和檔案存儲屬性) 211
10.2.9 讀取、寫入和創建檔案·216
10.2.10 隨機存取檔案·221
10.2.11 創建和讀取目錄·222
10.2.12 符號連結或其他方式的連結224
10.2.13 遍歷檔案樹226
10.2.14 查找檔案229
10.2.15 監視目錄的變化232
10.2.16 其他有用的方法236
10.2.17 遺留檔案的 I/O 代碼·237
10.3 小結239
10.4 問題和練習:基本I/O 和 NIO.2239
第11 章 集合240
11.1 集合簡介·240
11.1.1 集合框架是什麼241
11.1.2 Java 集合框架的好處·241
11.2 接口·241
11.2.1 Collection 接口243
11.2.2 遍歷集合244
11.2.3 Collection 接口的批量操作244
11.2.4 Collection 接口的數組操作245
11.2.5 Set 接口·245
11.2.6 List 接口248
11.2.7 Queue 接口255
11.2.8 Map 接口·257
11.2.9 對象排序262
11.2.10 SortedSet 接口·267
11.2.11 SortedMap 接口·269
11.2.12 小結·270
11.2.13 問題和練習:接口·270
11.3 實現·271
11.3.1 Set 實現·273
11.3.2 List 實現274
11.3.3 Map 實現·274
11.3.4 Queue 實現276
11.3.5 封裝實現277
11.3.6 簡單實現278
11.3.7 小結·279
11.3.8 問題和練習:實現·280
11.4 算法·280
11.4.1 排序·280
11.4.2 混排·282
11.4.3 常規數據操作282
11.4.4 查詢·282
11.4.5 組合·283
11.4.6 查找極值283
11.5 自定義集合實現283
11.5.1 編寫實現的原因283
11.5.2 如何編寫自定義實現·284
11.6 互操作性·285
11.6.1 兼容性·285
11.6.2 API 設計287
第12 章 並發·289
12.1 進程和執行緒·289
12.1.1 進程·289
12.1.2 執行緒·290
12.2 執行緒對象·290
12.2.1 定義和啟動一個執行緒·290
12.2.2 使用sleep 方法暫停執行·291
12.2.3 中斷·292
12.2.4 聯合·293
12.2.5 SimpleThreads 實例·293
12.3 同步294
12.3.1 執行緒衝突294
12.3.2 記憶體一致性錯誤295
12.3.3 同步方法296
12.3.4 內部鎖和同步297
12.3.5 原子訪問298
12.4 活性298
12.4.1 死鎖·299
12.4.2 飢餓和活鎖299
12.5 保護塊·300
12.6 不可變對象·303
12.6.1 同步類實例303
12.6.2 定義不可變對象的一種策略304
12.7 高級並發對象305
12.7.1 鎖對象·305
12.7.2 執行器·307
12.7.3 並發集合 311
12.7.4 原子變數 311
12.7.5 並發隨機數312
12.8 問題和練習:並發313
第13 章 正則表達式·314
13.1 簡介315
13.1.1 什麼是正則表達式·315
13.1.2 包中的正則表達式如何表示315
13.2 測試工具·315
13.3 字元串文字·316
13.3.1 元字元·317
13.4 字元類·317
13.4.1 簡單類·318
13.5 預定義字元類320
13.6 量詞322
13.6.1 零長度匹配323
13.6.2 捕捉組和擁有量詞的字元類·325
13.6.3 貪婪型、勉強型和占有型量詞之間的區別·325
13.7 捕捉組·326
13.7.1 編號·326
13.7.2 反向引用327
13.8 邊界匹配器·327
13.9 模式類方法·329
13.9.1 使用標記創建模式·329
13.9.2 嵌套標記表達式330
13.9.3 使用matches (String,CharSequence) 方法331
13.9.4 使用split (String) 方法331
13.9.5 其他實用方法332
13.9.6 java.lang.String 中模式方法的等價·332
13.10 匹配類方法·332
13.10.1 索引方法332
13.10.2 學習方法333
13.10.3 替換方法333
13.10.4 使用start 和end 方法333
13.10.5 使用matches 和lookingAt方法·334
13.10.6 使用replaceFirst (String)和replaceAll (String)·335
13.10.7 使用appendReplacement(StringBuffer, String) 和appendTail (StringBuffer)336
13.10.8 Matcher 方法在java.lang.String中的等價·336
13.11 模式語法異常類方法·336
13.12 Unicode 支持·338
13.12.1 匹配特定代碼點338
13.12.2 Unicode 字元屬性338
13.13 附加資源·338
13.14 問題和練習:正則表達式·339
第14 章 平台環境·340
14.1 配置工具·340
14.1.1 屬性·340
14.1.2 命令行參數343
14.1.3 環境變數344
14.1.4 其他配置工具345
14.2 系統工具·345
14.2.1 命令行I/O 對象·345
14.2.2 系統屬性346
14.2.3 安全管理器348
14.2.4 系統的其他方法349
14.3 路徑和類路徑349
14.3.1 更新PATH 環境變數(Microsoft Windows)349
14.3.2 更新PATH 變數(Solaris 和Linux)·351
14.3.3 檢查CLASSPATH 變數(所有平台)·351
14.4 問題和練習:平台環境·352
第15 章 JAR 檔案353
15.1 JAR 檔案使用入門353
15.1.1 創建JAR 檔案·354
15.1.2 查看JAR 檔案內容356
15.1.3 抽取JAR 檔案內容357
15.1.4 更新JAR 檔案·358
15.1.5 運行打包為JAR 的軟體359
15.2 清單檔案使用入門360
15.2.1 理解默認的清單檔案·361
15.2.2 修改清單檔案361
15.2.3 設定應用程式的入口點·362
15.2.4 將類檔案加入JAR 檔案的類路徑·363
15.2.5 設定包版本信息363
15.2.6 用JAR 檔案封裝包364
15.2.7 封裝JAR 檔案·365
15.3 JAR 檔案的簽名和驗證365
15.3.1 理解簽名和驗證365
15.3.2 對JAR 檔案簽名·367
15.3.3 驗證簽名的JAR 檔案369
15.4 使用JAR 相關API·369
15.4.1 實例:JarRunner 套用·369
15.5 問題:JAR 檔案373
第16 章 Java Web Start·374
16.1 開發Java Web Start 應用程式·375
16.1.1 創建頂層JPanel 類375
16.1.2 創建應用程式376
16.1.3 從最後部署機制中分離出核心方法的好處·376
16.1.4 獲取資源376
16.2 部署Java Web Start 套用377
16.2.1 設定Web 伺服器·378
16.3 顯示自定義的載入進度指示器·378
16.3.1 開發自定義的載入進度指示器378
16.3.2 為Java Web Start 套用指定自定義的載入進度指示器·380
16.4 運行Java Web Start 套用381
16.4.1 通過瀏覽器運行Java Web Start 套用·381
16.4.2 通過Java Cache Viewer 運行Java Web Start 套用·381
16.4.3 從桌面運行Java Web Start 套用·381
16.5 Java Web Start 與安全·382
16.5.1 動態下載HTTPS 認證·382
16.6 Java Web Start 常見問題·382
16.7 問題和練習:Java Web Start·383
第17 章 applet384
17.1 開始使用applet·384
17.1.1 定義Applet 類的子類385
17.1.2 Milestones 方法385
17.1.3 applet 的生命周期·386
17.1.4 applet 執行環境·387
17.1.5 開發applet·388
17.1.6 部署applet·390
17.2 applet 更多功能·392
17.2.1 查找和載入數據檔案·392
17.2.2 定義和使用applet 參數·392
17.2.3 顯示簡短的狀態字元串·394
17.2.4 在瀏覽器中顯示文檔·395
17.2.5 從applet 調用JavaScript代碼·396
17.2.6 從JavaScript 代碼中調用applet 方法·397
17.2.7 通過事件句柄處理初始化狀態·400
17.2.8 操縱applet 網頁的DOM·401
17.3 顯示自定義的載入進度指示器·402
17.3.1 開發自定義的載入進度指示器402
17.3.2 為applet 指定載入進度指示器·405
17.3.3 將載入進度指示器和applet 用戶界面結合·405
17.3.4 將診斷寫入標準輸出和錯誤流405
17.3.5 開發可拖動的applet406
17.3.6 和其他applet 互動·408
17.3.7 與伺服器端套用互動·409
17.3.8 applet 能做什麼和不能做什麼·410
17.4 applet 常見問題及解決方案 411
17.5 問題和練習:applet412
第18 章  Java 富網際網路套用系統413
18.1 設定可信參數和安全屬性·413
18.1.1 系統屬性414
18.2 JNLP API415
18.2.1 通過JNLP API 獲取客戶端416
18.3 cookie418
18.3.1 cookie 的類型419
18.3.2 RIA 中的cookie 支持419
18.3.3 獲取cookie419
18.4 自定義載入體驗420
18.5 RIA 中的安全421
18.6  問題和練習:Java 富網際網路套用系統·421
第19 章 深入理解部署·423
19.1 部署工具·423
19.1.1 部署工具腳本所在位置·423
19.1.2 部署applet·424
19.1.3 部署Java Web Start 套用·427
19.1.4 檢查客戶端的JRE 軟體版本·428
19.2 Java 網路載入協定429
19.2.1 JNLP 檔案結構429
19.3 部署的最佳實踐433
19.3.1 減少下載時間433
19.3.2 避免不必要的更新檢查·435
19.3.3 只有必要時才簽名JAR檔案·436
19.3.4 確保JRE 軟體存在436
19.4 問題和練習:深入理解部署·437
附錄 Java 程式語言認證考試複習大綱438
3.4 控制流語句·43
3.4.1 if-then 語句和if-then-else語句43
3.4.2 switch 語句44
3.4.3 while 語句和do-while 語句·48
3.4.4 for 語句·49
3.4.5 分支語句·50
3.4.6 小結·52
3.4.7 問題和練習:控制流語句·53
第4 章 類和對象·54
4.1 類54
4.1.1 聲明類·55
4.1.2 聲明成員變數56
4.1.3 定義方法·57
4.1.4 構建構造器58
4.1.5 將訊息傳給方法或構造器·59
4.2 對象62
4.2.1 創建對象·63
4.2.2 使用對象·65
4.3 類的更多細節·67
4.3.1 從方法返回值67
4.3.2 使用this 關鍵字68
4.3.3 控制對類成員的訪問·69
4.3.4 實例和類成員70
4.3.5 初始化欄位73
4.3.6 小結·74
4.3.7 問題和練習:類75
4.3.8 問題和練習:對象·76
4.4 嵌套類·76
4.4.1 為什麼使用嵌套類·77
4.4.2 靜態嵌套類77
4.4.3 內部類·77
4.4.4 內部類實例78
4.4.5 小結·79
4.4.6 問題和練習:嵌套類·79
4.5 枚舉類型·80
4.5.1 問題和練習:枚舉類型·82
4.6 註解82
4.6.1 文檔·82
4.6.2 編譯器使用的註解·83
4.6.3 註解的處理84
4.6.4 問題和練習:註解·85
第5 章 接口與繼承·86
5.1 接口86
5.1.1 Java 語言的接口86
5.1.2 將接口用作API·87
5.1.3 接口和多重繼承87
5.1.4 定義接口·87
5.1.5 實現接口·88
5.1.6 將接口用作類型89
5.1.7 重寫接口·90
5.1.8 小結·90
5.1.9 問題和練習:接口·91
5.2 繼承91
5.2.1 Java 平台中類的層次結構·91
5.2.2 繼承實例·92
5.2.3 子類能做什麼93
5.2.4 超類的私有成員93
5.2.5 轉換對象·93
5.2.6 覆蓋和禁止方法94
5.2.7 多態性·95
5.2.8 禁止欄位·97
5.2.9 使用super 關鍵字97
5.2.10 將對象用作超類98
5.2.11 編寫final 類和方法·101
5.2.12 抽象方法和類101
5.2.13 小結·103
5.2.14 問題和練習:繼承·103
第6 章 泛型105
6.1 為什麼用泛型·105
6.2 泛型類型·106
6.2.1 一個簡單的Box 類106
6.2.2 Box 類的泛型版本·106
6.2.3 類型參數命名約定·107
6.2.4 泛型類型的調用和實例化·107
6.2.5 鑽石運算符107
6.2.6 多個類型參數108
6.2.7 參數化類型108
6.2.8 原生類型·108
6.3 泛型方法· 110
6.4 受限類型形式參數 110
6.4.1 多重限制· 111
6.4.2 泛型方法和受限類型形式參數· 112
6.5 泛型、繼承和子類型 112
6.5.1 泛型類和子類型 113
6.6 類型推導· 114
6.6.1 類型推導和泛型方法· 114
6.6.2 類型推導和泛型類的實例化 115
6.6.3 類型推導與泛型類和非泛型類的泛型構造函式 115
6.7 通配符· 116
6.7.1 上界通配符 116
6.7.2 無界通配符 117
6.7.3 下界通配符 118
6.7.4 通配符和子類型 118
6.7.5 通配符匹配和輔助方法· 119
6.7.6 通配符使用指南121
6.8 類型擦除·122
6.8.1 泛型類型的擦除122
6.8.2 泛型方法的擦除123
6.8.3 類型擦除效果和橋方法·124
6.8.4 不可具體化類型125
6.9 泛型的局限性·128
6.9.1 不能用基本數據類型實例化泛型類型·128
6.9.2 不能創建類型參數實例·128
6.9.3 不能聲明類型為“類型參數”的靜態欄位128
6.9.4 對參數化類型不能用類型轉換或instanceof 運算符129
6.9.5 不能創建參數化類型數組·129
6.9.6 不能創建、捕獲或拋出參數化類型的對象130
6.9.7 每次重載時其形式參數類型都被擦為相同的原生類型的方法不能重載130
6.10 問題和練習:泛型130
第7 章 程式包133
7.1 程式包的創建·134
7.2 程式包的命名·135
7.2.1 命名約定·135
7.3 程式包成員的使用136
7.3.1 用完全限定名指代程式包成員136
7.3.2 導入包成員136
7.3.3 導入整個程式包136
7.3.4 包的表面層次結構·137
7.3.5 命名歧義性137
7.3.6 靜態import 語句·137
7.4 源檔案和類檔案的管理·138
7.4.1 設定CLASSPATH 系統變數139
7.5 小結140
7.6 問題和練習:創建和使用包·140
第8 章 數字和字元串·141
8.1 數字141
8.1.1 Number 類·141
8.1.2 格式化數字列印輸出·143
8.1.3 其他數學運算方法·146
8.1.4 自動裝箱和拆箱149
8.1.5 小結·150
8.1.6 問題和練習:數字·151
8.2 字元151
8.2.1 轉義字元·152
8.3 字元串·153
8.3.1 創建字元串153
8.3.2 字元串長度153
8.3.3 字元串連線154
8.3.4 創建格式字元串155
8.3.5 數字和字元串之間的轉換·155
8.3.6 操作字元串中的字元·157
8.3.7 比較字元串和字元串的子串160
8.3.8 StringBuilder 類·161
8.3.9 小結·164
8.3.10 問題和練習:字元和字元串·165
第9 章 異常166
9.1 什麼是異常·166
9.2 捕獲或指明規定167
9.2.1 三類異常·167
9.2.2 繞過捕獲或指明168
9.3 捕獲和處理異常168
9.3.1 try 塊·169
9.3.2 catch 塊169
9.3.3 finally 塊170
9.3.4 try-with-resources 語句171
9.3.5 匯總·174
9.4 指明一個方法拋出的異常·176
9.5 如何拋出異常·176
9.5.1 throw 語句·177
9.5.2 Throwable 類及其子類177
9.5.3 Error 類178
9.5.4 Exception 類178
9.5.5 鏈式異常·178
9.5.6 創建異常類179
9.6 未檢查異常:爭議180
9.7 異常的優點·180
9.7.1 優點1:把錯誤處理代碼和“正規”代碼分離開181
9.7.2 優點2:根據調用棧上傳錯誤182
9.7.3 優點3:對錯誤類型進行分組和加以區分183
9.8 小結184
9.9 問題和練習:異常184
第10 章 基本I/O 和NIO.2186
10.1 I/O 流186
10.1.1 位元組流·187
10.1.2 字元流·188
10.1.3 緩衝流·190
10.1.4 掃描和格式化191
10.1.5 命令行I/O·195
10.1.6 數據流·197
10.1.7 對象流·198
10.2 檔案I/O(以NIO.2 為特徵)199
10.2.1 什麼是路徑(以及其他檔案系統情況)200
10.2.2 Path 類·201
10.2.3 檔案操作206
10.2.4 檢查檔案或目錄209
10.2.5 刪除檔案或目錄210
10.2.6 複製檔案或目錄210
10.2.7 移動檔案或目錄 211
10.2.8 管理元數據(檔案和檔案存儲屬性) 211
10.2.9 讀取、寫入和創建檔案·216
10.2.10 隨機存取檔案·221
10.2.11 創建和讀取目錄·222
10.2.12 符號連結或其他方式的連結224
10.2.13 遍歷檔案樹226
10.2.14 查找檔案229
10.2.15 監視目錄的變化232
10.2.16 其他有用的方法236
10.2.17 遺留檔案的 I/O 代碼·237
10.3 小結239
10.4 問題和練習:基本I/O 和 NIO.2239
第11 章 集合240
11.1 集合簡介·240
11.1.1 集合框架是什麼241
11.1.2 Java 集合框架的好處·241
11.2 接口·241
11.2.1 Collection 接口243
11.2.2 遍歷集合244
11.2.3 Collection 接口的批量操作244
11.2.4 Collection 接口的數組操作245
11.2.5 Set 接口·245
11.2.6 List 接口248
11.2.7 Queue 接口255
11.2.8 Map 接口·257
11.2.9 對象排序262
11.2.10 SortedSet 接口·267
11.2.11 SortedMap 接口·269
11.2.12 小結·270
11.2.13 問題和練習:接口·270
11.3 實現·271
11.3.1 Set 實現·273
11.3.2 List 實現274
11.3.3 Map 實現·274
11.3.4 Queue 實現276
11.3.5 封裝實現277
11.3.6 簡單實現278
11.3.7 小結·279
11.3.8 問題和練習:實現·280
11.4 算法·280
11.4.1 排序·280
11.4.2 混排·282
11.4.3 常規數據操作282
11.4.4 查詢·282
11.4.5 組合·283
11.4.6 查找極值283
11.5 自定義集合實現283
11.5.1 編寫實現的原因283
11.5.2 如何編寫自定義實現·284
11.6 互操作性·285
11.6.1 兼容性·285
11.6.2 API 設計287
第12 章 並發·289
12.1 進程和執行緒·289
12.1.1 進程·289
12.1.2 執行緒·290
12.2 執行緒對象·290
12.2.1 定義和啟動一個執行緒·290
12.2.2 使用sleep 方法暫停執行·291
12.2.3 中斷·292
12.2.4 聯合·293
12.2.5 SimpleThreads 實例·293
12.3 同步294
12.3.1 執行緒衝突294
12.3.2 記憶體一致性錯誤295
12.3.3 同步方法296
12.3.4 內部鎖和同步297
12.3.5 原子訪問298
12.4 活性298
12.4.1 死鎖·299
12.4.2 飢餓和活鎖299
12.5 保護塊·300
12.6 不可變對象·303
12.6.1 同步類實例303
12.6.2 定義不可變對象的一種策略304
12.7 高級並發對象305
12.7.1 鎖對象·305
12.7.2 執行器·307
12.7.3 並發集合 311
12.7.4 原子變數 311
12.7.5 並發隨機數312
12.8 問題和練習:並發313
第13 章 正則表達式·314
13.1 簡介315
13.1.1 什麼是正則表達式·315
13.1.2 包中的正則表達式如何表示315
13.2 測試工具·315
13.3 字元串文字·316
13.3.1 元字元·317
13.4 字元類·317
13.4.1 簡單類·318
13.5 預定義字元類320
13.6 量詞322
13.6.1 零長度匹配323
13.6.2 捕捉組和擁有量詞的字元類·325
13.6.3 貪婪型、勉強型和占有型量詞之間的區別·325
13.7 捕捉組·326
13.7.1 編號·326
13.7.2 反向引用327
13.8 邊界匹配器·327
13.9 模式類方法·329
13.9.1 使用標記創建模式·329
13.9.2 嵌套標記表達式330
13.9.3 使用matches (String,CharSequence) 方法331
13.9.4 使用split (String) 方法331
13.9.5 其他實用方法332
13.9.6 java.lang.String 中模式方法的等價·332
13.10 匹配類方法·332
13.10.1 索引方法332
13.10.2 學習方法333
13.10.3 替換方法333
13.10.4 使用start 和end 方法333
13.10.5 使用matches 和lookingAt方法·334
13.10.6 使用replaceFirst (String)和replaceAll (String)·335
13.10.7 使用appendReplacement(StringBuffer, String) 和appendTail (StringBuffer)336
13.10.8 Matcher 方法在java.lang.String中的等價·336
13.11 模式語法異常類方法·336
13.12 Unicode 支持·338
13.12.1 匹配特定代碼點338
13.12.2 Unicode 字元屬性338
13.13 附加資源·338
13.14 問題和練習:正則表達式·339
第14 章 平台環境·340
14.1 配置工具·340
14.1.1 屬性·340
14.1.2 命令行參數343
14.1.3 環境變數344
14.1.4 其他配置工具345
14.2 系統工具·345
14.2.1 命令行I/O 對象·345
14.2.2 系統屬性346
14.2.3 安全管理器348
14.2.4 系統的其他方法349
14.3 路徑和類路徑349
14.3.1 更新PATH 環境變數(Microsoft Windows)349
14.3.2 更新PATH 變數(Solaris 和Linux)·351
14.3.3 檢查CLASSPATH 變數(所有平台)·351
14.4 問題和練習:平台環境·352
第15 章 JAR 檔案353
15.1 JAR 檔案使用入門353
15.1.1 創建JAR 檔案·354
15.1.2 查看JAR 檔案內容356
15.1.3 抽取JAR 檔案內容357
15.1.4 更新JAR 檔案·358
15.1.5 運行打包為JAR 的軟體359
15.2 清單檔案使用入門360
15.2.1 理解默認的清單檔案·361
15.2.2 修改清單檔案361
15.2.3 設定應用程式的入口點·362
15.2.4 將類檔案加入JAR 檔案的類路徑·363
15.2.5 設定包版本信息363
15.2.6 用JAR 檔案封裝包364
15.2.7 封裝JAR 檔案·365
15.3 JAR 檔案的簽名和驗證365
15.3.1 理解簽名和驗證365
15.3.2 對JAR 檔案簽名·367
15.3.3 驗證簽名的JAR 檔案369
15.4 使用JAR 相關API·369
15.4.1 實例:JarRunner 套用·369
15.5 問題:JAR 檔案373
第16 章 Java Web Start·374
16.1 開發Java Web Start 應用程式·375
16.1.1 創建頂層JPanel 類375
16.1.2 創建應用程式376
16.1.3 從最後部署機制中分離出核心方法的好處·376
16.1.4 獲取資源376
16.2 部署Java Web Start 套用377
16.2.1 設定Web 伺服器·378
16.3 顯示自定義的載入進度指示器·378
16.3.1 開發自定義的載入進度指示器378
16.3.2 為Java Web Start 套用指定自定義的載入進度指示器·380
16.4 運行Java Web Start 套用381
16.4.1 通過瀏覽器運行Java Web Start 套用·381
16.4.2 通過Java Cache Viewer 運行Java Web Start 套用·381
16.4.3 從桌面運行Java Web Start 套用·381
16.5 Java Web Start 與安全·382
16.5.1 動態下載HTTPS 認證·382
16.6 Java Web Start 常見問題·382
16.7 問題和練習:Java Web Start·383
第17 章 applet384
17.1 開始使用applet·384
17.1.1 定義Applet 類的子類385
17.1.2 Milestones 方法385
17.1.3 applet 的生命周期·386
17.1.4 applet 執行環境·387
17.1.5 開發applet·388
17.1.6 部署applet·390
17.2 applet 更多功能·392
17.2.1 查找和載入數據檔案·392
17.2.2 定義和使用applet 參數·392
17.2.3 顯示簡短的狀態字元串·394
17.2.4 在瀏覽器中顯示文檔·395
17.2.5 從applet 調用JavaScript代碼·396
17.2.6 從JavaScript 代碼中調用applet 方法·397
17.2.7 通過事件句柄處理初始化狀態·400
17.2.8 操縱applet 網頁的DOM·401
17.3 顯示自定義的載入進度指示器·402
17.3.1 開發自定義的載入進度指示器402
17.3.2 為applet 指定載入進度指示器·405
17.3.3 將載入進度指示器和applet 用戶界面結合·405
17.3.4 將診斷寫入標準輸出和錯誤流405
17.3.5 開發可拖動的applet406
17.3.6 和其他applet 互動·408
17.3.7 與伺服器端套用互動·409
17.3.8 applet 能做什麼和不能做什麼·410
17.4 applet 常見問題及解決方案 411
17.5 問題和練習:applet412
第18 章  Java 富網際網路套用系統413
18.1 設定可信參數和安全屬性·413
18.1.1 系統屬性414
18.2 JNLP API415
18.2.1 通過JNLP API 獲取客戶端416
18.3 cookie418
18.3.1 cookie 的類型419
18.3.2 RIA 中的cookie 支持419
18.3.3 獲取cookie419
18.4 自定義載入體驗420
18.5 RIA 中的安全421
18.6  問題和練習:Java 富網際網路套用系統·421
第19 章 深入理解部署·423
19.1 部署工具·423
19.1.1 部署工具腳本所在位置·423
19.1.2 部署applet·424
19.1.3 部署Java Web Start 套用·427
19.1.4 檢查客戶端的JRE 軟體版本·428
19.2 Java 網路載入協定429
19.2.1 JNLP 檔案結構429
19.3 部署的最佳實踐433
19.3.1 減少下載時間433
19.3.2 避免不必要的更新檢查·435
19.3.3 只有必要時才簽名JAR檔案·436
19.3.4 確保JRE 軟體存在436
19.4 問題和練習:深入理解部署·437
附錄 Java 程式語言認證考試複習大綱438

相關詞條

熱門詞條

聯絡我們