Java官方入門教程(第9版·Java 17)

Java官方入門教程(第9版·Java 17)

《Java官方入門教程(第9版·Java 17)》是2023年清華大學出版社出版的圖書,作者是[美]赫伯特·希爾特(Herbert Schildt),譯者是殷海英。

基本介紹

  • 中文名:Java官方入門教程(第9版·Java 17) 
  • 作者:[美]赫伯特·希爾特(Herbert Schildt)
  • 譯者:殷海英
  • 出版時間:2023年
  • 出版社:清華大學出版社
內容簡介,圖書目錄,作者簡介,

內容簡介

《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

作者簡介

Herbert Schildt是一位暢銷書作家,在30多年的時間裡,他撰寫了大量編程圖書。Herbert是Java語言領域的權威專家,被International Developer雜誌評為“全球最著名的編程書籍創作者之一”“。他撰寫的編程書籍在全球範圍內銷售了數百萬冊,已被翻譯 成所有主要的非英語語言。他撰寫了大量Java方面的書籍,包括Java: The Complete Reference、Herb Schildt’s Java Programming Cookbook、Introducing JavaFX 8 Programming和 Swing: A Beginner’s Guide。還撰寫了許多關於C、C++和C#的圖書。Ed Burns在Secrets of the Rock Star Programmers: Riding the IT Crest一書中將Herbert列為明星程式設計師。儘管對計算機的所有方面都感興趣,但Herbert主要關注計算機語言。Herbert擁有伊利諾伊大學的學士和碩士學位。

相關詞條

熱門詞條

聯絡我們