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