《Java 11官方入門教程(第8版)》是2019年9月清華大學出版社出版的圖書,作者是[美]赫伯特·希爾特(Herbert Schildt)。
基本介紹
- 書名:Java 11官方入門教程(第8版)
- 作者:赫伯特·希爾特(Herbert Schildt)
- 譯者:杜靜、敖富江
- 出版社:清華大學出版社
- 出版時間:2019年09月
- 定價:99.8 元
- ISBN:9787302536055
內容簡介,圖書目錄,
內容簡介
便於學習的設計
● 關鍵技能與概念:每章開頭列出要介紹的技能和概念
● 專家解答:以問答形式提供附加信息和實用提示
● 編程練習:示範如何運用編程技能的緊貼實用的練習
● 自測題:每章末尾都有一些測試題,以幫助讀者紮實掌握Java技能
● 語法注釋:示例代碼中的注釋闡述正在演示的編程技巧
圖書目錄
第1章 Java基礎 1
1.1 Java的歷史和基本原則 2
1.1.1 Java的起源 2
1.1.2 Java與C和C++的關係 3
1.1.3 Java對Internet的貢獻 3
1.1.4 Java的魔法:位元組碼 4
1.1.5 超越applet 5
1.1.6 更快速的發布時間表 6
1.1.7 Java的主要術語 6
1.2 面向對象程式設計 6
1.2.1 封裝 7
1.2.2 多態性 8
1.2.3 繼承 8
1.3 Java開發工具包 8
1.4 第一個簡單的程式 9
1.4.1 輸入程式 9
1.4.2 編譯程式 10
1.4.3 逐行分析第一個程式 10
1.5 處理語法錯誤 12
1.6 第二個簡單程式 12
1.7 另一種數據類型 14
1.8 兩個控制語句 16
1.8.1 if語句 16
1.8.2 for循環語句 18
1.9 創建代碼塊 19
1.10 分號和定位 20
1.11 縮進原則 20
1.12 Java關鍵字 22
1.13 Java標識符 23
1.14 Java類庫 23
1.15 自測題 23
第2章 數據類型與運算符 25
2.1 數據類型為什麼重要 26
2.2 Java的基本類型 26
2.2.1 整數類型 26
2.2.2 浮點型 27
2.2.3 字元型 28
2.2.4 布爾類型 29
2.3 字面值 31
2.3.1 十六進制、八進制和二進制字面值 31
2.3.2 字元轉義序列 32
2.3.3 字元串字面值 32
2.4 變數詳解 33
2.4.1 初始化變數 33
2.4.2 動態初始化 33
2.5 變數的作用域和生命期 34
2.6 運算符 36
2.7 算術運算符 36
2.8 關係運算符和邏輯運算符 37
2.9 短路邏輯運算符 39
2.10 賦值運算符 40
2.11 速記賦值 40
2.12 賦值中的類型轉換 41
2.13 不兼容類型的強制轉換 42
2.14 運算符的優先權 43
2.15 表達式 45
2.15.1 表達式中的類型轉換 45
2.15.2 間距和圓括弧 46
2.16 自測題 47
第3章 程式控制語句 49
3.1 從鍵盤輸入字元 50
3.2 if語句 51
3.2.1 嵌套if語句 52
3.2.2 if-else-if階梯狀結構 53
3.3 switch語句 54
3.4 for循環 58
3.4.1 for循環的一些變體 60
3.4.2 缺失部分要素的for循環 61
3.4.3 無限循環 61
3.4.4 沒有循環體的循環 62
3.4.5 在for循環內部聲明循環控制變數 62
3.4.6 增強型for循環 63
3.5 while循環 63
3.6 do-while循環 64
3.7 使用break語句退出循環 69
3.8 將break語句作為一種goto語句使用 70
3.9 使用continue語句 73
3.10 嵌套循環 77
3.11 自測題 78
第4章 類、對象和方法 81
4.1 類的基礎知識 82
4.1.1 類的基本形式 82
4.1.2 定義類 83
4.2 如何創建對象 85
4.3 引用變數和賦值 85
4.4 方法 86
4.5 從方法返回值 88
4.6 返回值 89
4.7 使用形參 90
4.8 構造函式 98
4.9 帶形參的構造函式 99
4.10 深入介紹new運算符 100
4.11 垃圾回收 101
4.12 this關鍵字 101
4.13 自測題 103
第5章 其他數據類型與運算符 105
5.1 數組 106
5.2 多維數組 110
5.2.1 二維數組 110
5.2.2 不規則數組 111
5.2.3 三維或更多維的數組 112
5.2.4 初始化多維數組 112
5.3 另一種聲明數組的語法 113
5.4 數組引用賦值 114
5.5 使用length成員 115
5.6 for-each形式的循環 119
5.6.1 疊代多維數組 122
5.6.2 套用增強型for循環 123
5.7 字元串 123
5.7.1 構造字元串 124
5.7.2 操作字元串 124
5.7.3 字元串數組 126
5.7.4 字元串是不可變的 127
5.7.5 使用String控制switch語句 128
5.8 使用命令行實參 128
5.9 使用局部變數的類型推斷功能 130
5.9.1 引用類型的局部變數類型推斷 131
5.9.2 在for循環中使用局部變數類型推斷 132
5.9.3 var的一些限制 133
5.10 位運算符 133
5.10.1 位運算符的與、或、異或和非 134
5.10.2 移位運算符 137
5.10.3 位運算符的賦值速記符 139
5.11 ?運算符 141
5.12 自測題 143
第6章 方法和類詳解 145
6.1 控制對類成員的訪問 146
6.2 向方法傳遞對象 150
6.3 返回對象 153
6.4 方法重載 155
6.5 重載構造函式 159
6.6 遞歸 163
6.7 理解static關鍵字 165
6.8 嵌套類和內部類 170
6.9 varargs 173
6.9.1 varargs基礎 173
6.9.2 重載varargs方法 175
6.9.3 varargs和歧義 177
6.10 自測題 178
第7章 繼承 179
7.1 繼承的基礎知識 180
7.2 成員訪問與繼承 182
7.3 構造函式和繼承 184
7.4 使用super調用超類構造函式 186
7.5 使用super訪問超類成員 189
7.6 創建多級層次結構 192
7.7 何時調用構造函式 195
7.8 超類引用和子類對象 196
7.9 方法重寫 200
7.10 重寫的方法支持多態性 202
7.11 為何使用重寫方法 203
7.12 使用抽象類 207
7.13 使用final 210
7.13.1 使用final防止重寫 210
7.13.2 使用final防止繼承 210
7.13.3 對數據成員使用final 211
7.14 Object類 212
7.15 自測題 213
第8章 包和接口 215
8.1 包 216
8.1.1 定義包 216
8.1.2 尋找包和CLASSPATH 217
8.1.3 一個簡短的包示例 217
8.2 包和成員訪問 218
8.3 理解被保護的成員 220
8.4 導入包 222
8.5 Java的類庫位於包中 223
8.6 接口 223
8.7 實現接口 224
8.8 使用接口引用 227
8.9 接口中的變數 233
8.10 接口能夠擴展 234
8.11 默認接口方法 235
8.11.1 默認方法的基礎知識 235
8.11.2 默認方法的實際套用 236
8.11.3 多繼承問題 237
8.12 在接口中使用靜態方法 238
8.13 私有接口方法 239
8.14 有關包和接口的最後思考 240
8.15 自測題 240
第9章 異常處理 241
9.1 異常的層次結構 242
9.2 異常處理基礎 242
9.2.1 使用關鍵字try和catch 242
9.2.2 一個簡單的異常示例 243
9.3 未捕獲異常的結果 245
9.4 使用多個catch語句 247
9.5 捕獲子類異常 247
9.6 try代碼塊可以嵌套 248
9.7 拋出異常 249
9.8 Throwable詳解 251
9.9 使用finally 252
9.10 使用throws語句 254
9.11 另外3種異常功能 255
9.12 Java的內置異常 256
9.13 創建異常子類 258
9.14 自測題 262
第10章 使用I/O 265
10.1 基於流的Java I/O 266
10.2 位元組流和字元流 266
10.3 位元組流類 266
10.4 字元流類 267
10.5 預定義流 267
10.6 使用位元組流 268
10.6.1 讀取控制台輸入 269
10.6.2 寫入控制台輸出 269
10.7 使用位元組流讀寫檔案 270
10.7.1 從檔案輸入 270
10.7.2 寫入檔案 273
10.8 自動關閉檔案 275
10.9 讀寫二進制數據 277
10.10 隨機訪問檔案 281
10.11 使用Java字元流 283
10.11.1 使用字元流的控制台輸入 284
10.11.2 使用字元流的控制台輸出 286
10.12 使用字元流的檔案I/O 287
10.12.1 使用FileWriter 287
10.12.2 使用FileReader 288
10.13 使用Java的類型封裝器轉換數值字元串 289
10.14 自測題 296
第11章 多執行緒程式設計 299
11.1 多執行緒的基礎知識 300
11.2 Thread類和Runnable接口 300
11.3 創建一個執行緒 301
11.4 創建多個執行緒 309
11.5 確定執行緒何時結束 311
11.6 執行緒的優先權 314
11.7 同步 316
11.8 使用同步方法 317
11.9 同步語句 319
11.10 使用notify( )、wait( )和notifyAll( )的執行緒通信 321
11.11 執行緒的掛起、繼續執行和停止 326
11.12 自測題 330
第12章 枚舉、自動裝箱、靜態導入和註解 333
12.1 枚舉 334
12.2 Java語言中的枚舉是類類型 336
12.3 values( )和valueOf( )方法 336
12.4 構造函式、方法、實例變數和枚舉 337
12.5 枚舉繼承enum 339
12.6 自動裝箱 344
12.7 類型封裝器 344
12.8 自動裝箱的基礎知識 346
12.9 自動裝箱和方法 347
12.10 發生在表達式中的自動裝箱/自動拆箱 348
12.11 靜態導入 349
12.12 註解(元數據) 352
12.13 自測題 354
第13章 泛型 355
13.1 泛型的基礎知識 356
13.2 簡單的泛型示例 356
13.2.1 泛型只能用於引用類型 359
13.2.2 泛型類型是否相同基於其類型實參 359
13.2.3 帶有兩個類型形參的泛型類 360
13.2.4 泛型類的一般形式 361
13.3 受限類型 361
13.4 使用通配符實參 364
13.5 受限通配符 366
13.6 泛型方法 369
13.7 泛型構造函式 370
13.8 泛型接口 371
13.9 原類型和遺留代碼 377
13.10 使用菱形運算符進行類型推斷 379
13.11 局部變數類型推斷和泛型 380
13.12 擦除特性 380
13.13 歧義錯誤 380
13.14 一些泛型限制 381
13.14.1 類型形參不能實例化 381
13.14.2 對靜態成員的限制 381
13.14.3 泛型數組限制 382
13.14.4 泛型異常限制 383
13.15 繼續學習泛型 383
13.16 自測題 383
第14章 lambda表達式和方法引用 385
14.1 lambda表達式簡介 386
14.1.1 lambda表達式的基礎知識 386
14.1.2 函式式接口 387
14.1.3 幾個lambda表達式示例 389
14.2 塊lambda表達式 392
14.3 泛型函式式接口 393
14.4 lambda表達式和變數捕獲 398
14.5 從 lambda表達式中拋出異常 399
14.6 方法引用 401
14.6.1 靜態方法的方法引用 401
14.6.2 實例方法的方法引用 402
14.7 構造函式引用 406
14.8 預定義的函式式接口 408
14.9 自測題 409
第15章 模組 411
15.1 模組基礎 412
15.1.1 簡單的模組示例 413
15.1.2 編譯、運行第一個模組示例 416
15.1.3 requires和exports 417
15.2 java.base和平台模組 417
15.3 舊代碼和未命名的模組 418
15.4 導出到特定的模組 419
15.5 使用requires transitive 420
15.6 使用服務 423
15.6.1 服務和服務提供程式的基礎知識 423
15.6.2 基於服務的關鍵字 424
15.6.3 基於模組的服務示例 424
15.7 其他模組功能 430
15.7.1 open模組 430
15.7.2 opens語句 430
15.7.3 requires static 430
15.8 繼續模組的學習 431
15.9 自測題 431
第16章 Swing介紹 433
16.1 Swing的起源和設計原則 434
16.2 組件和容器 435
16.2.1 組件 435
16.2.2 容器 436
16.2.3 頂級容器窗格 436
16.3 布局管理器 436
16.4 第一個簡單的Swing程式 437
16.5 Swing事件處理 440
16.5.1 事件 441
16.5.2 事件源 441
16.5.3 事件監聽器 441
16.5.4 事件類和監聽器接口 441
16.6 使用JButton 442
16.7 使用JTextField 445
16.8 使用JCheckBox 448
16.9 使用JList 450
16.10 使用匿名內部類或lambda表達式來處理事件 458
16.11 自測題 459
附錄A 自測題答案 461
附錄B 使用Java的文檔注釋 495
附錄C 編譯運行簡單的單檔案程式 503
附錄D JShell簡介 505
附錄E 更多Java關鍵字 513