Java官方入門教程(第9版·Java 17) Java: A Beginner's Guide, 9/e
[美]赫伯特·希爾特(Herbert Schildt)著 殷海英 譯
- 出版商: 清華大學
- 出版日期: 2023-07-01
- 售價: $768
- 貴賓價: 9.5 折 $730
- 語言: 簡體中文
- ISBN: 7302639582
- ISBN-13: 9787302639589
-
相關分類:
Java 程式語言
- 此書翻譯自: Java: A Beginner's Guide, 9/e (Paperback)
立即出貨 (庫存 < 4)
相關主題
商品描述
《Java官方入門教程(第9版·Java 17)》針對Java SE 17做了全面細致的更新,將引導你輕松學習**的核心Java編程技能。《Java官方入門教程(第9版·Java 17)》由暢銷編程書作者Herbert Schildt撰寫,開篇講述基礎知識,內容涉及如何創建、編譯和運行Java程序。此後濃墨重彩地描述構成Java語言核心的關鍵字、語法和結構。本書還涵蓋Java的一些更高級特性,如多線程編程、泛型、lambda表達式、模塊、記錄、密封類和Swing。另外,還介紹了Java的交互式編程工具JShell。本書通俗易懂、簡明扼要、詳略得當,成為全球數百萬讀者的選擇。
目錄大綱
目 錄
第1章 Java基礎 1
1.1 Java的歷史和基本原則 2
1.1.1 Java的起源 3
1.1.2 Java與C和C++的關系 3
1.1.3 Java對Internet的貢獻 4
1.1.4 Java的魔法:字節碼 5
1.1.5 超越applet 6
1.1.6 更快速的發布時間表 7
1.1.7 Java的主要術語 8
1.2 面向對象程序設計 8
1.2.1 封裝 9
1.2.2 多態性 9
1.2.3 繼承 10
1.3 Java開發工具包 10
1.4 第一個簡單的程序 11
1.4.1 輸入程序 12
1.4.2 編譯程序 12
1.4.3 逐行分析第一個程序 13
1.5 處理語法錯誤 15
1.6 第二個簡單程序 15
1.7 另一種數據類型 17
1.8 兩個控制語句 19
1.8.1 if語句 20
1.8.2 for循環語句 21
1.9 創建代碼塊 22
1.10 分號和定位 24
1.11 縮進原則 24
1.12 Java關鍵字 26
1.13 Java標識符 27
1.14 Java類庫 27
1.15 自測題 27
第2章 數據類型與運算符 29
2.1 數據類型為什麽重要 30
2.2 Java的基本類型 30
2.2.1 整數類型 31
2.2.2 浮點型 32
2.2.3 字符型 33
2.2.4 布爾類型 34
2.3 字面值 36
2.3.1 十六進制、八進制和二進制字面值 36
2.3.2 字符轉義序列 37
2.3.3 字符串字面值 37
2.4 變量詳解 38
2.4.1 初始化變量 38
2.4.2 動態初始化 39
2.5 變量的作用域和生命期 39
2.6 運算符 41
2.7 算術運算符 42
2.8 關系運算符和邏輯運算符 43
2.9 短路邏輯運算符 45
2.10 賦值運算符 46
2.11 速記賦值 46
2.12 賦值中的類型轉換 48
2.13 不兼容類型的強制轉換 49
2.14 運算符的優先級 50
2.15 表達式 52
2.15.1 表達式中的類型轉換 52
2.15.2 間距和圓括號 54
2.16 自測題 54
第3章 程序控制語句 55
3.1 從鍵盤輸入字符 56
3.2 if語句 57
3.2.1 嵌套if語句 58
3.2.2 if-else-if階梯狀結構 59
3.3 switch語句 60
3.4 for循環 66
3.4.1 for循環的一些變體 67
3.4.2 缺失部分要素的for循環 68
3.4.3 無限循環 69
3.4.4 沒有循環體的循環 69
3.4.5 在for循環內部聲明循環控制變量 70
3.4.6 增強型for循環 70
3.5 while循環 71
3.6 do-while循環 72
3.7 使用break語句退出循環 77
3.8 將break語句作為一種goto
語句使用 78
3.9 使用continue語句 82
3.10 嵌套循環 86
3.11 自測題 87
第4章 類、對象和方法 89
4.1 類的基礎知識 90
4.1.1 類的基本形式 90
4.1.2 定義類 91
4.2 如何創建對象 94
4.3 引用變量和賦值 94
4.4 方法 95
4.5 從方法返回值 97
4.6 返回值 98
4.7 使用形參 100
4.8 構造函數 107
4.9 帶形參的構造函數 109
4.10 深入介紹new運算符 110
4.11 垃圾回收 111
4.12 this關鍵字 111
4.13 自測題 113
第5章 其他數據類型與運算符 115
5.1 數組 116
5.2 多維數組 121
5.2.1 二維數組 121
5.2.2 不規則數組 122
5.2.3 三維或更多維的數組 123
5.2.4 初始化多維數組 123
5.3 另一種聲明數組的語法 124
5.4 數組引用賦值 125
5.5 使用length成員 126
5.6 for-each形式的循環 131
5.6.1 迭代多維數組 134
5.6.2 應用增強型for循環 135
5.7 字符串 135
5.7.1 構造字符串 136
5.7.2 操作字符串 136
5.7.3 字符串數組 138
5.7.4 字符串是不可變的 139
5.7.5 使用String控制switch語句 140
5.8 使用命令行實參 142
5.9 使用局部變量的類型推斷功能 143
5.9.1 引用類型的局部變量類型推斷 145
5.9.2 在for循環中使用局部變量類型推斷 146
5.9.3 var的一些限制 147
5.10 位運算符 147
5.10.1 位運算符的與、或、異或和非 148
5.10.2 移位運算符 151
5.10.3 位運算符的賦值速記符 153
5.11 ?運算符 156
5.12 自測題 157
第6章 方法和類詳解 159
6.1 控制對類成員的訪問 160
6.2 向方法傳遞對象 165
6.3 返回對象 168
6.4 方法重載 170
6.5 重載構造函數 175
6.6 遞歸 179
6.7 理解static關鍵字 181
6.8 嵌套類和內部類 187
6.9 varargs:可變長度的實參 190
6.9.1 varargs基礎 190
6.9.2 重載varargs方法 193
6.9.3 varargs和歧義 194
6.10 自測題 195
第7章 繼承 197
7.1 繼承的基礎知識 198
7.2 成員訪問與繼承 201
7.3 構造函數和繼承 203
7.4 使用super調用超類構造函數 205
7.5 使用super訪問超類成員 208
7.6 創建多級層次結構 212
7.7 何時執行構造函數 215
7.8 超類引用和子類對象 216
7.9 方法重寫 220
7.10 重寫的方法支持多態性 222
7.11 為何使用重寫方法 224
7.12 使用抽象類 227
7.13 使用final 231
7.13.1 使用final防止重寫 231
7.13.2 使用final防止繼承 232
7.13.3 對數據成員使用final 232
7.14 Object類 233
7.15 自測題 234
第8章 包和接口 237
8.1 包 238
8.1.1 定義包 239
8.1.2 尋找包和CLASSPATH 239
8.1.3 一個簡短的包示例 240
8.2 包和成員訪問 241
8.3 理解被保護的成員 243
8.4 導入包 245
8.5 Java的類庫位於包中 246
8.6 接口 247
8.7 實現接口 248
8.8 使用接口引用 251
8.9 接口中的變量 258
8.10 接口能夠擴展 258
8.11 默認接口方法 259
8.11.1 默認方法的基礎知識 260
8.11.2 默認方法的實際應用 261
8.11.3 多繼承問題 262
8.12 在接口中使用靜態方法 263
8.13 私有接口方法 264
8.14 有關包和接口的最後思考 265
8.15 自測題 265
第9章 異常處理 267
9.1 異常的層次結構 268
9.2 異常處理基礎 269
9.2.1 使用關鍵字try和catch 269
9.2.2 一個簡單的異常示例 270
9.3 未捕獲異常的後果 272
9.4 使用多個catch語句 274
9.5 捕獲子類異常 275
9.6 try代碼塊可以嵌套 276
9.7 拋出異常 277
9.8 Throwable詳解 279
9.9 使用finally 280
9.10 使用throws語句 282
9.11 另外3種異常功能 283
9.12 Java的內置異常 284
9.13 創建異常子類 286
9.14 自測題 291
第10章 使用I/O 293
10.1 基於流的Java I/O 294
10.2 字節流和字符流 294
10.3 字節流類 295
10.4 字符流類 295
10.5 預定義流 296
10.6 使用字節流 296
10.6.1 讀取控制台輸入 297
10.6.2 寫入控制台輸出 298
10.7 使用字節流讀寫文件 299
10.7.1 從文件輸入 299
10.7.2 寫入文件 303
10.8 自動關閉文件 304
10.9 讀寫二進制數據 307
10.10 隨機訪問文件 311
10.11 使用Java字符流 313
10.11.1 使用字符流的控制台輸入 314
10.11.2 使用字符流的控制台輸出 317
10.12 使用字符流的文件I/O 318
10.12.1 使用FileWriter 318
10.12.2 使用FileReader 319
10.13 使用Java的類型封裝器轉換數值字符串 320
10.14 自測題 328
第11章 多線程程序設計 331
11.1 多線程的基礎知識 332
11.2 Thread類和Runnable接口 333
11.3 創建一個線程 333
11.4 創建多個線程 342
11.5 確定線程何時結束 345
11.6 線程的優先級 348
11.7 同步 350
11.8 使用同步方法 351
11.9 同步語句 354
11.10 使用notify( )、wait( )和notifyAll( )的線程通信 356
11.11 線程的掛起、繼續執行和停止 361
11.12 自測題 366
第12章 枚舉、自動裝箱、註解和其他特性 367
12.1 枚舉 368
12.2 Java語言中的枚舉是類類型 370
12.3 values( )和valueOf( )方法 371
12.4 構造函數、方法、實例變量和枚舉 372
12.5 枚舉繼承enum 374
12.6 自動裝箱 380
12.7 類型封裝器 380
12.8 自動裝箱的基礎知識 382
12.9 自動裝箱和方法 383
12.10 發生在表達式中的自動裝箱/
自動拆箱 384
12.11 靜態導入 386
12.12 註解(元數據) 388
12.13 instanceof運算符 390
12.14 自測題 392
第13章 泛型 395
13.1 泛型的基礎知識 396
13.2 簡單的泛型示例 397
13.2.1 泛型只能用於引用類型 400
13.2.2 泛型類型根據其類型參數而不同 400
13.2.3 帶有兩個類型形參的泛型類 400
13.2.4 泛型類的一般形式 402
13.3 受限類型 402
13.4 使用通配符實參 405
13.5 受限通配符 408
13.6 泛型方法 410
13.7 泛型構造函數 412
13.8 泛型接口 413
13.9 原類型和遺留代碼 419
13.10 使用菱形運算符進行類型推斷 421
13.11 局部變量類型推斷和泛型 422
13.12 擦除特性 423
13.13 歧義錯誤 423
13.14 一些泛型限制 424
13.14.1 類型形參不能被實例化 424
13.14.2 對靜態成員的限制 424
13.14.3 泛型數組限制 425
13.14.4 泛型異常限制 426
13.15 繼續學習泛型 426
13.16 自測題 426
第14章 lambda表達式和方法引用 429
14.1 lambda表達式簡介 430
14.1.1 lambda表達式的基礎知識 431
14.1.2 函數式接口 432
14.1.3 幾個lambda表達式示例 433
14.2 塊lambda表達式 438
14.3 泛型函數式接口 439
14.4 lambda表達式和變量捕獲 444
14.5 從 lambda表達式中拋出異常 446
14.6 方法引用 447
14.6.1 靜態方法的方法引用 447
14.6.2 實例方法的方法引用 449
14.7 構造函數引用 452
14.8 預定義的函數式接口 455
14.9 自測題 456
第15章 模塊 459
15.1 模塊基礎 460
15.1.1 簡單的模塊示例 461
15.1.2 編譯、運行第一個模塊示例 465
15.1.3 詳述requires和exports 466
15.2 java.base和平臺模塊 466
15.3 舊代碼和未命名的模塊 467
15.4 導出到特定的模塊 468
15.5 使用requires transitive 469
15.6 使用服務 473
15.6.1 服務和服務提供程序的基礎知識 473
15.6.2 基於服務的關鍵字 474
15.6.3 基於模塊的服務示例 474
15.7 其他模塊功能 480
15.7.1 open模塊 480
15.7.2 opens語句 481
15.7.3 requires static 481
15.8 繼續學習模塊 481
15.9 自測題 482
第16章 switch表達式、記錄以及其他新近添加的特性 483
16.1 switch的增強 484
16.1.2 switch表達式和yield語句簡介 486
16.1.3 case語句中的箭頭 488
16.1.4 深入介紹箭頭case 489
16.2 記錄 495
16.2.1 記錄的基礎知識 495
16.2.2 創建記錄構造函數 497
16.2.3 深入介紹記錄的getter方法 501
16.3 instanceof的模式匹配 502
16.4 密封類和密封接口 503
16.4.1 密封類 504
16.4.2 密封接口 506
16.5 未來的發展方向 507
16.6 自測題 507
第17章 Swing介紹 509
17.1 Swing的起源和設計原則 510
17.2 組件和容器 512
17.2.1 組件 512
17.2.2 容器 513
17.2.3 頂級容器窗格 513
17.3 佈局管理器 513
17.4 第一個簡單的Swing程序 514
17.5 Swing事件處理 518
17.5.1 事件 518
17.5.2 事件源 519
17.5.3 事件監聽器 519
17.5.4 事件類和監聽器接口 519
17.6 使用JButton 520
17.7 使用JTextField 523
17.8 創建JCheckBox 526
17.9 使用JList 529
17.10 使用匿名內部類或lambda表達式來處理事件 538
17.11 自測題 539
—以下內容通過掃描封底二維碼獲取—
附錄A 自測題答案 541
附錄B 使用Java的文檔註釋 579
附錄C 編譯和運行簡單的單文件程序 589
附錄D JShell簡介 591
附錄E 更多Java關鍵字 601