《21天學(xué)通Java(第8版)》循序漸進(jìn)地介紹了Java編程語(yǔ)言知識(shí),并提供了豐富的實(shí)例和練習(xí),同時(shí)全面涵蓋了Java 12這一新標(biāo)準(zhǔn)以及與Android開發(fā)相關(guān)的Java編程知識(shí)。
《21天學(xué)通Java(第8版)》包括3周的課程,第1周介紹Java語(yǔ)言的基本知識(shí),包括數(shù)據(jù)類型、變量、表達(dá)式、對(duì)象、數(shù)組、條件語(yǔ)句、循環(huán)、類、包、接口、異常、線程等;第2周介紹Java類庫(kù),包括鏈表、棧、哈希映射和位組等數(shù)據(jù)結(jié)構(gòu)以及Swing組件、布局管理器和Java Web Start等;第3周介紹Java編程的高級(jí)主題,包括內(nèi)部類、輸入和輸出、閉包、通過Internet進(jìn)行通信、使用數(shù)據(jù)庫(kù)、XML、Web服務(wù)、Android編程示例等內(nèi)容。
《21天學(xué)通Java(第8版)》可作為初學(xué)者學(xué)習(xí)Java編程技術(shù)的教程,也可供已掌握其他語(yǔ)言的程序員學(xué)習(xí)Java時(shí)參考。
1.適合零基礎(chǔ)讀者閱讀,通過本書的學(xué)習(xí),讀者可以掌握在計(jì)算機(jī)、Web服務(wù)器和移動(dòng)設(shè)備上開發(fā)應(yīng)用程序所需的知識(shí)與技巧。
2.本書針對(duì)Java 11和Java 12進(jìn)行了更新,并介紹了從Java基礎(chǔ)知識(shí)到Java高級(jí)特性和概念在內(nèi)的所有內(nèi)容。
3.此外,本書還介紹了Java和Java類庫(kù)的相關(guān)知識(shí)。
4.本書源代碼和NetBeans 11可供下載。
5.自帶測(cè)試與練習(xí)題,本書帶有測(cè)試題與練習(xí)題,可幫助讀者檢測(cè)知識(shí)的掌握情況。
本書內(nèi)容:
涵蓋Java 11和Java 12的新特性;
使用NetBeans開發(fā)Java應(yīng)用程序;
使用易于理解的示例清楚闡釋Java編程基礎(chǔ);
開發(fā)帶有圖形用戶界面的程序;
使用Derby數(shù)據(jù)庫(kù)進(jìn)行JDBC編程;
使用內(nèi)部類和Lambda表達(dá)式;
使用NetBeans快速開發(fā)應(yīng)用程序;
使用Java開發(fā)游戲。
羅格斯·卡登海德(Rogers Cadenhead)是一位經(jīng)驗(yàn)豐富的軟件開發(fā)人員,出版了30多部編程和Web發(fā)布方面的著作。當(dāng)前在云平臺(tái)ServiceNow上使用Java和JavaScript開發(fā)應(yīng)用程序,還維護(hù)著本書配套網(wǎng)站www.java21days.com。
第 1周 Java語(yǔ)言
第 1章 Java基礎(chǔ) 2
1.1 Java語(yǔ)言 2
1.1.1 Java的歷史 2
1.1.2 Java概述 3
1.1.3 選擇開發(fā)工具 3
1.2 面向?qū)ο缶幊獭?
1.3 對(duì)象和類 5
1.4 屬性和行為 6
1.4.1 屬性 6
1.4.2 行為 7
1.4.3 創(chuàng)建類 7
1.4.4 運(yùn)行程序 9
1.5 組織類和類行為 11
1.5.1 繼承 11
1.5.2 創(chuàng)建類層次結(jié)構(gòu) 12
1.5.3 使用繼承 14
1.5.4 包 15
1.6 總結(jié) 15
1.7 問與答 16
1.8 小測(cè)驗(yàn) 16
1.8.1 問題 16
1.8.2 答案 17
1.9 認(rèn)證練習(xí) 17
1.10 練習(xí) 17
第 2章 Java編程基礎(chǔ) 18
2.1 語(yǔ)句和表達(dá)式 18
2.2 變量和數(shù)據(jù)類型 19
2.2.1 創(chuàng)建變量 19
2.2.2 給變量命名 20
2.2.3 變量類型 20
2.2.4 給變量賦值 21
2.2.5 常量 22
2.3 注釋 23
2.4 字面量 24
2.4.1 數(shù)字字面量 24
2.4.2 布爾字面量 25
2.4.3 字符字面量 25
2.4.4 字符串字面量 26
2.5 表達(dá)式和運(yùn)算符 26
2.5.1 算術(shù)運(yùn)算符 27
2.5.2 再談賦值 28
2.5.3 遞增和遞減運(yùn)算符 29
2.5.4 比較運(yùn)算符 29
2.5.5 邏輯運(yùn)算符 30
2.5.6 運(yùn)算符優(yōu)先級(jí) 31
2.6 字符串運(yùn)算 32
2.7 總結(jié) 33
2.8 問與答 33
2.9 小測(cè)驗(yàn) 34
2.9.1 問題 34
2.9.2 答案 34
2.10 認(rèn)證練習(xí) 34
2.11 練習(xí) 35
第3章 對(duì)象 36
3.1 創(chuàng)建新對(duì)象 36
3.1.1 使用new運(yùn)算符 36
3.1.2 對(duì)象是如何創(chuàng)建的 38
3.1.3 內(nèi)存管理 38
3.2 使用類變量和實(shí)例變量 39
3.2.1 獲取值 39
3.2.2 設(shè)置值 39
3.2.3 類變量 40
3.3 調(diào)用方法 41
3.3.1 設(shè)置字符串的格式 42
3.3.2 嵌套方法調(diào)用 43
3.3.3 類方法 43
3.4 對(duì)象的引用 44
3.5 對(duì)象和基本數(shù)據(jù)類型的強(qiáng)制類型轉(zhuǎn)換 45
3.5.1 強(qiáng)制轉(zhuǎn)換基本數(shù)據(jù)類型 46
3.5.2 強(qiáng)制轉(zhuǎn)換對(duì)象 46
3.5.3 基本數(shù)據(jù)類型和對(duì)象之間的轉(zhuǎn)換 47
3.6 比較對(duì)象值和類 48
3.6.1 比較對(duì)象 49
3.6.2 判斷對(duì)象所屬的類 50
3.7 總結(jié) 50
3.8 問與答 51
3.9 小測(cè)驗(yàn) 51
3.9.1 問題 51
3.9.2 答案 52
3.10 認(rèn)證練習(xí) 52
3.11 練習(xí) 52
第4章 數(shù)組、邏輯和循環(huán) 53
4.1 數(shù)組 53
4.1.1 聲明數(shù)組變量 53
4.1.2 創(chuàng)建數(shù)組對(duì)象 54
4.1.3 訪問數(shù)組元素 55
4.1.4 修改數(shù)組元素 55
4.1.5 多維數(shù)組 57
4.2 塊語(yǔ)句 58
4.3 if條件語(yǔ)句 58
4.4 switch條件語(yǔ)句 59
4.5 三目運(yùn)算符 64
4.6 for循環(huán) 65
4.7 while和do循環(huán) 66
4.7.1 while循環(huán) 66
4.7.2 do-while循環(huán) 68
4.8 跳出循環(huán) 68
4.9 總結(jié) 69
4.10 問與答 70
4.11 小測(cè)驗(yàn) 70
4.11.1 問題 70
4.11.2 答案 70
4.12 認(rèn)證練習(xí) 71
4.13 練習(xí) 71
第5章 創(chuàng)建類和方法 72
5.1 定義類 72
5.2 創(chuàng)建實(shí)例變量和類變量 72
5.2.1 定義實(shí)例變量 73
5.2.2 類變量 73
5.3 創(chuàng)建方法 73
5.3.1 定義方法 73
5.3.2 關(guān)鍵字this 75
5.3.3 變量作用域和方法定義 75
5.3.4 將參數(shù)傳遞給方法 76
5.3.5 類方法 77
5.4 創(chuàng)建Java應(yīng)用程序 78
5.5 Java應(yīng)用程序和參數(shù) 79
5.5.1 將參數(shù)傳遞給Java應(yīng)用程序 79
5.5.2 在Java程序中處理參數(shù) 80
5.6 創(chuàng)建同名方法 81
5.7 構(gòu)造函數(shù) 84
5.7.1 基本的構(gòu)造函數(shù) 84
5.7.2 調(diào)用另一個(gè)構(gòu)造函數(shù) 85
5.7.3 重載構(gòu)造函數(shù) 85
5.8 覆蓋方法 86
5.8.1 創(chuàng)建覆蓋現(xiàn)有方法的方法 87
5.8.2 調(diào)用原來的方法 88
5.8.3 覆蓋構(gòu)造函數(shù) 88
5.9 總結(jié) 90
5.10 問與答 90
5.11 小測(cè)驗(yàn) 91
5.11.1 問題 91
5.11.2 答案 91
5.12 認(rèn)證練習(xí) 91
5.13 練習(xí) 92
第6章 包、接口和其他類特性 93
6.1 限定符 93
6.2 靜態(tài)變量和方法 97
6.3 final類、方法和變量 99
6.3.1 變量 99
6.3.2 方法 99
6.3.3 類 100
6.4 抽象類和方法 100
6.5 包 101
6.5.1 import聲明 101
6.5.2 類名沖突 102
6.6 創(chuàng)建自己的包 103
6.6.1 選擇包名 103
6.6.2 創(chuàng)建文件夾結(jié)構(gòu) 103
6.6.3 將類加入包中 104
6.6.4 包和類訪問控制 104
6.7 接口 104
6.7.1 單繼承存在的問題 104
6.7.2 接口和類 105
6.7.3 實(shí)現(xiàn)和使用接口 105
6.7.4 實(shí)現(xiàn)多個(gè)接口 105
6.7.5 接口的其他用途 106
6.8 創(chuàng)建和擴(kuò)展接口 106
6.8.1 新接口 106
6.8.2 接口中的方法 107
6.8.3 擴(kuò)展接口 107
6.8.4 創(chuàng)建網(wǎng)上商店 108
6.9 總結(jié) 112
6.10 問與答 112
6.11 小測(cè)驗(yàn) 112
6.11.1 問題 112
6.11.2 答案 113
6.12 認(rèn)證練習(xí) 113
6.13 練習(xí) 114
第7章 異常和線程 115
7.1 異常 115
7.2 管理異!117
7.2.1 異常一致性檢測(cè) 117
7.2.2 保護(hù)代碼和捕獲異常 118
7.2.3 finally子句 119
7.3 聲明可能引發(fā)異常的方法 122
7.3.1 throws子句 122
7.3.2 應(yīng)引發(fā)哪些異!122
7.3.3 傳遞異常 123
7.3.4 throws和繼承 123
7.4 創(chuàng)建并引發(fā)自己的異!124
7.4.1 引發(fā)異!124
7.4.2 創(chuàng)建自己的異!125
7.4.3 結(jié)合使用throws、try和throw 125
7.5 在什么情況下不使用異!126
7.6 線程 127
7.6.1 編寫線程化程序 127
7.6.2 線程化應(yīng)用程序 128
7.6.3 終止線程 131
7.7 總結(jié) 132
7.8 問與答 132
7.9 小測(cè)驗(yàn) 132
7.9.1 問題 133
7.9.2 答案 133
7.10 認(rèn)證練習(xí) 133
7.11 練習(xí) 134
第 2周 Java類庫(kù)
第8章 數(shù)據(jù)結(jié)構(gòu) 136
8.1 超越數(shù)組 136
8.2 Java數(shù)據(jù)結(jié)構(gòu) 136
8.2.1 Iterator 137
8.2.2 位組 138
8.2.3 鏈表 140
8.2.4 遍歷數(shù)據(jù)結(jié)構(gòu) 142
8.2.5 !144
8.2.6 Map 145
8.2.7 哈希映射 146
8.3 泛型 149
8.4 枚舉 151
8.5 總結(jié) 152
8.6 問與答 153
8.7 小測(cè)驗(yàn) 153
8.7.1 問題 153
8.7.2 答案 153
8.8 認(rèn)證練習(xí) 154
8.9 練習(xí) 154
第9章 創(chuàng)建圖形用戶界面 155
9.1 創(chuàng)建應(yīng)用程序 155
9.1.1 創(chuàng)建圖形用戶界面 156
9.1.2 開發(fā)框架 157
9.1.3 創(chuàng)建組件 158
9.1.4 將組件加入容器 159
9.2 使用組件 160
9.2.1 圖標(biāo) 160
9.2.2 標(biāo)簽 162
9.2.3 文本框 162
9.2.4 文本區(qū)域 163
9.2.5 可滾動(dòng)窗格 164
9.2.6 復(fù)選框和單選按鈕 165
9.2.7 組合框 167
9.2.8 列表 168
9.3 Java類庫(kù) 169
9.4 總結(jié) 171
9.5 問與答 171
9.6 小測(cè)驗(yàn) 171
9.6.1 問題 171
9.6.2 答案 172
9.7 認(rèn)證練習(xí) 172
9.8 練習(xí) 172
第 10章 創(chuàng)建界面 173
10.1 Swing的特性 173
10.1.1 標(biāo)準(zhǔn)對(duì)話框 173
10.1.2 使用對(duì)話框 176
10.1.3 滑塊 178
10.1.4 滾動(dòng)窗格 179
10.1.5 工具欄 180
10.1.6 進(jìn)度條 182
10.1.7 菜單 184
10.1.8 選項(xiàng)卡式窗格 185
10.2 總結(jié) 187
10.3 問與答 187
10.4 小測(cè)驗(yàn) 188
10.4.1 問題 188
10.4.2 答案 188
10.5 認(rèn)證練習(xí) 188
10.6 練習(xí) 189
第 11章 在用戶界面上排列組件 190
11.1 基本的界面布局 190
11.1.1 布置界面 190
11.1.2 順序布局 191
11.1.3 方框布局 192
11.1.4 網(wǎng)格布局 194
11.1.5 邊框布局 195
11.2 使用多個(gè)布局管理器 197
11.3 卡片布局 198
11.3.1 在應(yīng)用程序中使用卡片布局 198
11.3.2 單元格內(nèi)邊距和面板內(nèi)邊距 203
11.4 總結(jié) 203
11.5 問與答 204
11.6 小測(cè)驗(yàn) 204
11.6.1 問題 204
11.6.2 答案 205
11.7 認(rèn)證練習(xí) 205
11.8 練習(xí) 206
第 12章 響應(yīng)用戶輸入 207
12.1 事件監(jiān)聽器 207
12.1.1 設(shè)置組件 208
12.1.2 事件處理方法 208
12.2 使用方法 210
12.2.1 行為事件 211
12.2.2 焦點(diǎn)事件 211
12.2.3 選項(xiàng)事件 213
12.2.4 鍵盤事件 215
12.2.5 鼠標(biāo)事件 215
12.2.6 鼠標(biāo)移動(dòng)事件 216
12.2.7 窗口事件 219
12.2.8 使用適配器類 219
12.2.9 使用內(nèi)部類 221
12.3 總結(jié) 222
12.4 問與答 222
12.5 小測(cè)驗(yàn) 223
12.5.1 問題 223
12.5.2 答案 223
12.6 認(rèn)證練習(xí) 223
12.7 練習(xí) 224
第 13章 創(chuàng)建Java2D圖形 225
13.1 Graphics2D類 225
13.2 繪制文本 226
13.2.1 使用防鋸齒改善字體和圖形的
質(zhì)量 228
13.2.2 獲取字體的信息 228
13.3 顏色 230
13.3.1 使用Color對(duì)象 230
13.3.2 檢測(cè)和設(shè)置當(dāng)前顏色 231
13.4 繪制直線和多邊形 231
13.4.1 用戶坐標(biāo)空間和設(shè)備坐標(biāo)空間 232
13.4.2 指定渲染屬性 232
13.4.3 創(chuàng)建要繪制的對(duì)象 234
13.4.4 繪制對(duì)象 236
13.5 總結(jié) 238
13.6 問與答 238
13.7 小測(cè)驗(yàn) 238
13.7.1 問題 238
13.7.2 答案 239
13.8 認(rèn)證練習(xí) 239
13.9 練習(xí) 240
第 14章 開發(fā)Swing應(yīng)用程序 241
14.1 使用SwingWorker改善性能 241
14.2 網(wǎng)格袋布局 245
14.2.1 設(shè)計(jì)網(wǎng)格 246
14.2.2 創(chuàng)建網(wǎng)格 247
14.3 總結(jié) 251
14.4 問與答 251
14.5 小測(cè)驗(yàn) 251
14.5.1 問題 251
14.5.2 答案 252
14.6 認(rèn)證練習(xí) 252
14.7 練習(xí) 252
第3周 Java編程
第 15章 使用內(nèi)部類和Lambda表達(dá)式 254
15.1 內(nèi)部類 254
15.2 Lambda表達(dá)式 261
15.3 變量類型推斷 264
15.4 總結(jié) 265
15.5 問與答 265
15.6 小測(cè)驗(yàn) 266
15.6.1 問題 266
15.6.2 答案 266
15.7 認(rèn)證練習(xí) 266
15.8 練習(xí) 267
第 16章 輸入和輸出 268
16.1 流簡(jiǎn)介 268
16.1.1 使用流 268
16.1.2 過濾流 269
16.1.3 處理異!269
16.2 字節(jié)流 269
16.3 過濾流 273
16.4 字符流 280
16.4.1 讀取文本文件 280
16.4.2 寫文本文件 282
16.5 文件和路徑 283
16.6 總結(jié) 284
16.7 問與答 285
16.8 小測(cè)驗(yàn) 285
16.8.1 問題 285
16.8.2 答案 286
16.9 認(rèn)證練習(xí) 286
16.10 練習(xí) 286
第 17章 通過HTTP進(jìn)行通信 288
17.1 Java聯(lián)網(wǎng)技術(shù) 288
17.1.1 打開跨越網(wǎng)絡(luò)的流 288
17.1.2 套接字 292
17.1.3 Socket服務(wù)器 294
17.1.4 設(shè)計(jì)服務(wù)器應(yīng)用程序 295
17.1.5 測(cè)試服務(wù)器 296
17.2 java.nio包 297
17.2.1 緩沖區(qū) 297
17.2.2 通道 300
17.3 總結(jié) 307
17.4 問與答 307
17.5 小測(cè)驗(yàn) 307
17.5.1 問題 307
17.5.2 答案 308
17.6 認(rèn)證練習(xí) 308
17.7 練習(xí) 308
第 18章 使用JDBC和Derby訪問數(shù)據(jù)庫(kù) 309
18.1 JDBC 309
18.1.1 數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序 310
18.1.2 查看數(shù)據(jù)庫(kù) 310
18.1.3 讀取數(shù)據(jù)庫(kù)記錄 312
18.1.4 將記錄寫入數(shù)據(jù)庫(kù) 315
18.1.5 遍歷結(jié)果集 320
18.2 總結(jié) 321
18.3 問與答 321
18.4 小測(cè)驗(yàn) 321
18.4.1 問題 321
18.4.2 答案 321
18.5 認(rèn)證練習(xí) 322
18.6 練習(xí) 322
第 19章 讀寫RSS Feed 323
19.1 使用XML 323
19.2 設(shè)計(jì)XML語(yǔ)言 325
19.3 使用Java處理XML 326
19.4 使用XOM處理XML 326
19.4.1 創(chuàng)建XML文檔 327
19.4.2 修改XML文檔 329
19.4.3 格式化XML文檔 332
19.4.4 評(píng)估XOM 334
19.5 總結(jié) 336
19.6 問與答 337
19.7 小測(cè)驗(yàn) 337
19.7.1 問題 337
19.7.2 答案 337
19.8 認(rèn)證練習(xí) 338
19.9 練習(xí) 338
第 20章 請(qǐng)求Web服務(wù) 339
20.1 XML-RPC簡(jiǎn)介 339
20.2 使用XML-RPC進(jìn)行通信 340
20.2.1 發(fā)送請(qǐng)求 340
20.2.2 響應(yīng)請(qǐng)求 341
20.3 選擇XML-RPC實(shí)現(xiàn) 342
20.4 使用XML-RPC Web服務(wù) 343
20.5 創(chuàng)建XML-RPC Web服務(wù) 345
20.6 總結(jié) 349
20.7 問與答 349
20.8 小測(cè)驗(yàn) 349
20.8.1 問題 349
20.8.2 答案 350
20.9 認(rèn)證練習(xí) 350
20.10 練習(xí) 350
第 21章 使用Java編寫游戲 351
21.1 游戲Banko簡(jiǎn)介 351
21.2 第 一部分:創(chuàng)建自定義按鈕 352
21.2.1 使用Swing設(shè)計(jì)自定義按鈕 354
21.2.2 定義按鈕的行為和屬性 355
21.2.3 遞歸地顯示空框 356
21.3 第二部分:顯示游戲板 357
21.3.1 將組件排列成網(wǎng)格 359
21.3.2 生成隨機(jī)數(shù) 359
21.3.3 使用三目運(yùn)算符 360
21.4 第三部分:顯示游戲框架 361
21.4.1 繪制圖形用戶界面 364
21.4.2 運(yùn)行游戲Banko 364
21.4.3 響應(yīng)單擊按鈕事件 365
21.5 總結(jié) 366
21.6 問與答 366
21.7 小測(cè)驗(yàn) 367
21.7.1 問題 367
21.7.2 答案 368
21.8 認(rèn)證練習(xí) 368
21.9 練習(xí) 368