出版信息
Java編程入門官方教程(第7版)
作者:[美]Herbert Schildt 著 左雷 譯
定價:89元
印次:1-1
ISBN:9787302499329
出版日期:2018.06.01
印刷日期:2018.05.25
內容簡介
針對Java SE 9做了全面細緻的更新,將引導你輕鬆學習新的核心Java編程技能,指導你立即著手編寫Java程式。《Java編程入門官方教程(第7版)》開篇講述Java語言基礎知識(如創建、編譯和運行Java程式的方式),此後濃墨重彩地描述構成Java語言核心的關鍵字、語法和結構。最後介紹Java的一些高級特性,如多執行緒程式設計、泛型、lambda表達式、Swing、JavaFX、新“模組”功能以及Java最新的互動式編程工具Jshell。
目錄
第1章Java基礎1
1.1Java的起源1
1.2Java對Internet的貢獻2
1.2.1Java簡化了基於Web的編程3
1.2.2Javaapplet3
1.2.3安全性3
1.2.4可移植性3
1.3Java的魔法:位元組碼3
1.4超越applet4
1.5Java的主要術語4
1.6面向對象程式設計5
1.6.1封裝5
1.6.2多態性6
1.6.3繼承6
1.7獲得Java開發工具包6
1.8第一個簡單的程式7
1.8.1輸入程式7
1.8.2編譯程式8
1.8.3逐行分析第一個程式8
1.9處理語法錯誤9
1.10第二個簡單程式10
1.11另一種數據類型11
1.12兩條控制語句13
1.12.1if語句13
1.12.2for循環語句14
1.13創建代碼塊15
1.14分號和定位16
1.15縮進原則16
1.16Java關鍵字18
1.17Java標識符18
1.18Java類庫19
1.19自測題19
第2章數據類型與運算符21
2.1數據類型為什麼重要21
2.2Java的基本類型21
2.2.1整數類型22
2.2.2浮點型23
2.2.3字元型23
2.2.4布爾類型24
2.3字面值26
2.3.1十六進制、八進制和二進制字面值26
2.3.2字元轉義序列26
2.3.3字元串字面值27
2.4變數詳解28
2.4.1初始化變數28
2.4.2動態初始化28
2.5變數的作用域和生命期28
2.6運算符30
2.7算術運算符30
2.8關係運算符和邏輯運算符32
2.9短路邏輯運算符33
2.10賦值運算符34
2.11速記賦值34
2.12賦值中的類型轉換35
2.13不兼容類型的強制轉換36
2.14運算符的優先權37
2.15表達式38
2.15.1表達式中的類型轉換38
2.15.2間距和圓括弧40
2.16自測題40
第3章程式控制語句41
3.1從鍵盤輸入字元41
3.2if語句42
3.2.1嵌套if語句43
3.2.2if-else-if階梯狀結構44
3.3switch語句44
3.4for循環48
3.4.1for循環的一些變體50
3.4.2缺失部分要素的for循環50
3.4.3無限循環51
3.4.4沒有循環體的循環51
3.4.5在for循環內部聲明循環控制變數52
3.4.6增強型for循環52
3.5while循環52
3.6do-while循環54
3.7使用break語句退出循環57
3.8將break語句作為一種goto語句使用58
3.9使用continue語句61
3.10嵌套循環65
3.11自測題65
第4章類、對象和方法67
4.1類的基礎知識67
4.1.1類的基本形式67
4.1.2定義類68
4.2如何創建對象70
4.3引用變數和賦值70
4.4方法71
4.5從方法返回值73
4.6返回值73
4.7使用形參75
4.8構造函式81
4.9帶形參的構造函式82
4.10深入介紹new運算符83
4.11垃圾回收83
4.12this關鍵字84
4.13自測題85
第5章其他數據類型與運算符87
5.1數組87
5.2多維數組91
5.3不規則數組91
5.3.1三維或更多維的數組92
5.3.2初始化多維數組93
5.4另一種聲明數組的語法93
5.5數組引用賦值94
5.6使用length成員95
5.7for-each形式的循環99
5.7.1疊代多維數組101
5.7.2套用增強型for循環102
5.8字元串102
5.8.1構造字元串102
5.8.2操作字元串103
5.8.3字元串數組104
5.8.4字元串是不可變的105
5.8.5使用String控制switch語句106
5.9使用命令行實參106
5.10位運算符107
5.10.1位運算符的與、或、異或和非108
5.10.2移位運算符111
5.10.3位運算符的賦值速記符112
5.11?運算符114
5.12自測題115
第6章方法和類詳解117
6.1控制對類成員的訪問117
6.2向方法傳遞對象121
6.3返回對象124
6.4方法重載125
6.5重載構造函式129
6.6遞歸132
6.7理解static關鍵字134
6.8嵌套類和內部類138
6.9varargs140
6.9.1varargs基礎141
6.9.2重載varargs方法143
6.9.3varargs和歧義144
6.10自測題145
第7章繼承147
7.1繼承的基礎知識147
7.2成員訪問與繼承149
7.3構造函式和繼承151
7.4使用super調用超類構造函式152
7.5使用super訪問超類成員155
7.6創建多級層次結構158
7.7何時調用構造函式160
7.8超類引用和子類對象161
7.9方法重寫164
7.10重寫的方法支持多態性166
7.11為何使用重寫方法167
7.12使用抽象類170
7.13使用final173
7.13.1使用final防止重寫173
7.13.2使用final防止繼承174
7.13.3對數據成員使用final174
7.14Object類175
7.15自測題175
第8章包和接口177
8.1包177
8.1.1定義包177
8.1.2尋找包和CLASSPATH178
8.1.3一個簡短的包示例178
8.2包和成員訪問179
8.3理解被保護的成員181
8.4導入包182
8.5Java的類庫位於包中183
8.6接口184
8.7實現接口185
8.8使用接口引用187
8.9接口中的變數192
8.10接口能夠擴展193
8.11默認接口方法193
8.11.1默認方法的基礎知識194
8.11.2默認方法的實際套用195
8.11.3多繼承問題196
8.12在接口中使用靜態方法196
8.13私有接口方法197
8.14有關包和接口的最後思考198
8.15自測題198
第9章異常處理199
9.1異常的層次結構199
9.2異常處理基礎200
9.2.1使用關鍵字try和catch200
9.2.2一個簡單的異常示例200
9.3未捕獲異常的結果202
9.4使用多個catch語句203
9.5捕獲子類異常204
9.6try代碼塊可以嵌套205
9.7拋出異常206
9.8Throwable詳解207
9.9使用finally208
9.10使用throws語句210
9.11新增的3種異常功能211
9.12Java的內置異常212
9.13創建異常子類213
9.14自測題217
第10章使用I/O219
10.1Java的I/O基於流219
10.2位元組流和字元流219
10.3位元組流類220
10.4字元流類220
10.5預定義流221
10.6使用位元組流221
10.6.1讀取控制台輸入222
10.6.2寫入控制台輸出223
10.7使用位元組流讀寫檔案223
10.7.1從檔案輸入223
10.7.2寫入檔案226
10.8自動關閉檔案227
10.9讀寫二進制數據229
10.10隨機訪問檔案232
10.11使用Java字元流234
10.11.1使用字元流的控制台輸入235
10.11.2使用字元流的控制台輸出237
10.12使用字元流的檔案I/O237
10.12.1使用FileWriter238
10.12.2使用FileReader238
10.13使用Java的類型封裝器轉換數值字元串239
10.14自測題246
第11章多執行緒程式設計247
11.1多執行緒的基礎知識247
11.2Thread類和Runnable接口248
11.3創建一個執行緒248
11.4創建多個執行緒255
11.5確定執行緒何時結束257
11.6執行緒的優先權259
11.7同步262
11.8使用同步方法262
11.9同步語句264
11.10使用notify()、wait()和notifyAll()的執行緒通信266
11.11執行緒的掛起、繼續執行和停止270
11.12自測題274
第12章枚舉、自動裝箱、靜態導入和註解275
12.1枚舉275
12.2Java語言中的枚舉是類類型277
12.3values()和valueOf()方法277
12.4構造函式、方法、實例變數和枚舉278
12.5枚舉繼承enum279
12.6自動裝箱284
12.7類型封裝器284
12.8自動裝箱的基礎知識286
12.9自動裝箱和方法286
12.10發生在表達式中的自動裝箱/自動拆箱287
12.11靜態導入289
12.12註解(元數據)290
12.13自測題292
第13章泛型295
13.1泛型的基礎知識295
13.2一個簡單的泛型示例296
13.2.1泛型只能用於引用類型298
13.2.2泛型類型是否相同基於其類型
實參298
13.2.3帶有兩個類型形參的泛型類299
13.2.4泛型類的一般形式300
13.3約束類型300
13.4使用通配符實參302
13.5約束通配符304
13.6泛型方法306
13.7泛型構造函式308
13.8泛型接口308
13.9原類型和遺留代碼313
13.10使用菱形運算符進行類型推斷315
13.11擦除特性315
13.12歧義錯誤316
13.13一些泛型限制316
13.13.1類型形參不能實例化316
13.13.2對靜態成員的限制317
13.13.3泛型數組限制317
13.13.4泛型異常限制318
13.14繼續學習泛型318
13.15自測題318
第14章lambda表達式和方法引用319
14.1lambda表達式簡介319
14.1.1lambda表達式的基礎知識320
14.1.2函式式接口320
14.1.3幾個lambda表達式示例322
14.2塊lambda表達式325
14.3泛型函式式接口326
14.4lambda表達式和變數捕獲330
14.5從lambda表達式中拋出異常331
14.6方法引用332
14.6.1靜態方法的方法引用332
14.6.2實例方法的方法引用334
14.7構造函式引用336
14.8預定義的函式式接口338
14.9自測題339
第15章模組341
15.1模組基礎341
15.1.1簡單的模組示例342
15.1.2編譯、運行第一個模組示例345
15.1.3requires和exports346
15.2java.base和平台模組346
15.3舊代碼和未命名的模組347
15.4導出到特定的模組347
15.5使用requirestransitive348
15.6使用服務351
15.6.1服務和服務提供程式的基礎知識351
15.6.2基於服務的關鍵字351
15.6.3基於模組的服務示例352
15.7其他模組功能356
15.7.1open模組357
15.7.2opens語句357
15.7.3requiresstatic357
15.8繼續模組的學習357
15.9自測題358
第16章Swing介紹359
16.1Swing的起源和設計原則359
16.2組件和容器360
16.2.1組件361
16.2.2容器361
16.2.3頂級容器窗格361
16.3布局管理器362
16.4第一個簡單的Swing程式362
16.5Swing事件處理365
16.5.1事件365
16.5.2事件源365
16.5.3事件監聽器366
16.5.4事件類和監聽器接口366
16.6使用JButton366
16.7使用JTextField369
16.8使用JCheckBox371
16.9使用JList374
16.10使用匿名內部類或lambda表達式來處理事件380
16.11自測題381
第17章JavaFX簡介383
17.1JavaFX的基本概念383
17.1.1JavaFX包384
17.1.2Stage和Scene類384
17.1.3節點和場景圖384
17.1.4布局384
17.1.5Application類和生命周期方法384
17.1.6啟動JavaFX應用程式385
17.2JavaFX應用程式的骨架385
17.3編譯和運行JavaFX程式387
17.4應用程式執行緒387
17.5使用簡單的JavaFX控制項Label387
17.6使用按鈕和事件389
17.6.1事件基礎389
17.6.2按鈕控制項簡介390
17.6.3演示事件處理和按鈕390
17.7其他3個JavaFX控制項392
17.7.1CheckBox392
17.7.2ListView396
17.7.3TextField399
17.8效果和變換簡介401
17.8.1效果401
17.8.2變換403
17.8.3演示效果和變換403
17.9進一步學習406
17.10自測題406
附錄A自測題答案409
附錄B使用Java的文檔注釋439
附錄CJavaWebStart概述445
附錄DJShell簡介451
附錄E更多Java關鍵字459