圖書簡介
本書是作者多年來教學實踐經驗的總結,匯集了學員在學習課程或認證考試中遇到的概念、操作、套用等問題及解決方案
針對Java SE 8新功能全面改版,無論是章節架構或範例程式代碼,都做了重新編寫與全面翻新
詳細介紹了JVM、JRE、Java SE API、JDK與IDE之間的對照關係
從Java SE API的原始碼分析,了解各種語法在Java SE API中的具體套用
提供練習的Lab操作文檔,方便讀者掌握練習重點
將IDE操作納入教學內容使讀者能與實踐結合,提供視頻教學能更清楚地幫助讀者掌握操作步驟
目錄
Chapter1Java平台概論 1
1.1 Java不只是語言 2
1.1.1 前世今生 2
1.1.2 三大平台 5
1.1.3 JCP與JSR 6
1.1.4 OracleJDK與OpenJDK 7
1.1.5 建議的學習路徑 9
1.2 JVM/JRE/JDK 12
1.2.1 什麼是JVM 13
1.2.2 區分JRE與JDK 15
1.2.3 下載、安裝JDK 16
1.2.4 認識JDK安裝內容 19
1.3 重點複習 20
1.4 課後練習 21
Chapter2從JDK到IDE 22
2.1 從HelloWorld開始 23
2.1.1 撰寫Java原始碼 23
2.1.2 PATH是什麼 25
2.1.3 JVM(java)與
CLASSPATH 28
2.1.4 編譯程式(javac)與
CLASSPATH 31
2.2 管理原始碼與位碼文檔 33
2.2.1 編譯程式(javac)與SOURCEPATH 33
2.2.2 使用package管理類 35
2.2.3 使用import偷懶 37
2.3 使用IDE 39
2.3.1 IDE項目管理基礎 40
2.3.2 使用了哪個JRE 44
2.3.3 類文檔版本 45
2.4 重點複習 48
2.5 課後練習 49
Chapter3基礎語法 53
3.1 類型、變數與運算符 54
3.1.1 類型 54
3.1.2 變數 57
3.1.3 運算符 60
3.1.4 類型轉換 66
3.2 流程控制 69
3.2.1 if...else條件式 69
3.2.2 switch條件式 72
3.2.3 for循環 74
3.2.4 while循環 75
3.2.5 break、continue 77
3.3 重點複習 78
3.4 課後練習 79
3.4.1 選擇題 79
3.4.2 操作題 81
Chapter4認識對象 82
4.1 類與對象 83
4.1.1 定義類 83
4.1.2 使用標準類 86
4.1.3 對象指定與相等性 89
4.2 基本類型打包器 90
4.2.1 打包基本類型 90
4.2.2 自動裝箱、拆箱 91
4.2.3 自動裝箱、拆箱的內幕 92
4.3 數組對象 95
4.3.1 數組基礎 95
4.3.2 運算元組對象 98
4.3.3 數組複製 104
4.4 字元串對象 107
4.4.1 字元串基礎 107
4.4.2 字元串特性 110
4.4.3 字元串編碼 113
4.5 查詢JavaAPI檔案 115
4.6 重點複習 118
4.7 課後練習 119
4.7.1 選擇題 119
4.7.2 操作題 121
Chapter5對象封裝 122
5.1 何謂封裝 123
5.1.1 封裝對象初始流程 123
5.1.2 封裝對象操作流程 125
5.1.3 封裝對象內部數據 128
5.2 類語法細節 131
5.2.1 public許可權修飾 131
5.2.2 關於構造函式 133
5.2.3 構造函式與方法重載 134
5.2.4 使用this 136
5.2.5 static類成員 139
5.2.6 不定長度自變數 145
5.2.7 內部類 146
5.2.8 傳值調用 148
5.3 重點複習 151
5.4 課後練習 152
5.4.1 選擇題 152
5.4.2 操作題 155
Chapter6繼承與多態 157
6.1 何謂繼承 158
6.1.1 繼承共同行為 158
6.1.2 多態與is-a 162
6.1.3 重新定義行為 166
6.1.4 抽象方法、抽象類 169
6.2 繼承語法細節 170
6.2.1 protected成員 170
6.2.2 重新定義的細節 172
6.2.3 再看構造函式 174
6.2.4 再看final關鍵字 176
6.2.5 java.lang.Object 178
6.2.6 關於垃圾收集 182
6.2.7 再看抽象類 185
6.3 重點複習 188
6.4 課後練習 189
6.4.1 選擇題 189
6.4.2 操作題 193
Chapter7接口與多態 194
7.1 何謂接口 195
7.1.1 接口定義行為 195
7.1.2 行為的多態 199
7.1.3 解決需求變化 202
7.2 接口語法細節 208
7.2.1 接口的默認 208
7.2.2 匿名內部類 212
7.2.3 使用enum枚舉常數 217
7.3 重點複習 219
7.4 課後練習 220
7.4.1 選擇題 220
7.4.2 操作題 224
Chapter8異常處理 226
8.1 語法與繼承架構 227
8.1.1 使用try、catch 227
8.1.2 異常繼承架構 230
8.1.3 要抓還是要拋 235
8.1.4 貼心還是造成麻煩 238
8.1.5 認識堆疊追蹤 240
8.1.6 關於assert 244
8.2 異常與資源管理 247
8.2.1 使用finally 247
8.2.2 自動嘗試關閉資源 249
8.2.3 java.lang.AutoCloseable接口 251
8.3 重點複習 256
8.4 課後練習 257
8.4.1 選擇題 257
8.4.2 操作題 261
Chapter9Collection與Map 262
9.1 使用Collection收集對象 263
9.1.1 認識Collection架構 263
9.1.2 具有索引的List 264
9.1.3 內容不重複的Set 268
9.1.4 支持佇列操作的Queue 272
9.1.5 使用泛型 275
9.1.6 簡介Lambda表達式 279
9.1.7 Interable與Iterator 281
9.1.8 Comparable與Comparator 284
9.2 鍵值對應的Map 290
9.2.1 常用Map操作類 291
9.2.2 訪問Map鍵值 295
9.3 重點複習 298
9.4 課後練習 299
9.4.1 選擇題 299
9.4.2 操作題 303
Chapter10輸入/輸出 304
10.1 InputStream與OutputStream 305
10.1.1 串流設計的概念 305
10.1.2 串流繼承架構 308
10.1.3 串流處理裝飾器 311
10.2 字元處理類 316
10.2.1 Reader與Writer繼承架構 316
10.2.2 字元處理裝飾器 318
10.3 重點複習 320
10.4 課後練習 321
10.4.1 選擇題 321
10.4.2 操作題 322
Chapter11執行緒與並行API 324
11.1 執行緒 325
11.1.1 執行緒簡介 325
11.1.2 Thread與Runnable 328
11.1.3 執行緒生命周期 329
11.1.4 關於ThreadGroup 336
11.1.5 synchronized與volatile 339
11.1.6 等待與通知 349
11.2 並行API 353
11.2.1 Lock、ReadWriteLock與Condition 354
11.2.2 使用Executor 364
11.2.3 並行Collection簡介 375
11.3 重點複習 379
11.4 課後練習 380
11.4.1 選擇題 380
11.4.2 操作題 381
Chapter12Lambda 382
12.1 認識Lambda語法 383
12.1.1 Lambda語法概覽 383
12.1.2 Lambda表達式與函式接口 386
12.1.3 Lambda遇上this與final 388
12.1.4 方法與構造函式參考 391
12.1.5 接口默認方法 394
12.2 Functional與StreamAPI 399
12.2.1 使用Optional取代null 399
12.2.2 標準API的函式接口 401
12.2.3 使用Stream進行管道操作 404
12.2.4 進行Stream的reduce與collect 408
12.2.5 關於flatMap()方法 413
12.3 Lambda與並行處理 416
12.3.1 Stream與平行化 416
12.3.2 使用Completable-Future 420
12.4 重點複習 423
12.5課後練習 424
Chapter13時間與日期 425
13.1 認識時間與日期 426
13.1.1 時間的度量 426
13.1.2 年曆簡介 427
13.1.3 認識時區 428
13.2 認識Date與Calendar 429
13.2.1 時間軸上瞬間的Date 429
13.2.2 格式化時間日期的DateFormat 430
13.2.3 處理時間日期的Calendar 433
13.2.4 設定TimeZone 436
13.3 JDK8新時間日期API 437
13.3.1 機器時間觀點的API 437
13.3.2 人類時間觀點的API 439
13.3.3 對時間的運算 441
13.3.4 年曆系統設計 444
13.4 重點複習 445
13.5 課後練習 446
Chapter14NIO與NIO2 447
14.1認識NIO 448
14.1.1 NIO概述 448
14.1.2 Channel架構與操作 449
14.1.3 Buffer架構與操作 450
14.2 NIO2檔案系統 452
14.2.1 NIO2架構 453
14.2.2 操作路徑 454
14.2.3 屬性讀取與設定 456
14.2.4 操作文檔與目錄 459
14.2.5 讀取、訪問目錄 461
14.2.6 過濾、搜尋文檔 466
14.3 重點複習 468
14.4 課後練習 469
Chapter15通用API 470
15.1 日誌 471
15.1.1 日誌API簡介 471
15.1.2 指定日誌層級 473
15.1.3 使用Handler與
Formatter 475
15.1.4 自定義Handler、Formatter與Filter 476
15.1.5 使用logging.properties 478
15.2 國際化基礎 480
15.2.1 使用ResourceBundle 480
15.2.2 使用Locale 481
15.3 規則表示式 483
15.3.1 規則表示式簡介 483
15.3.2 Pattern與Matcher 491
15.4 JDK8API增強功能 494
15.4.1 StringJoiner、Arrays新增API 494
15.4.2 Stream相關API 495
15.5 重點複習 496
15.6 課後練習 497
15.6.1 選擇題 497
15.6.2 操作題 497
Chapter16整合資料庫 498
16.1 JDBC入門 499
16.1.1 JDBC簡介 499
16.1.2 連線資料庫 503
16.1.3 使用Statement、ResultSet 509
16.1.4 使用PreparedStatement、CallableStatement 514
16.2 JDBC進階 518
16.2.1 使用DataSource取得在線上 518
16.2.2 使用ResultSet捲動、更新數據 522
16.2.3 批次更新 524
16.2.4 Blob與Clob 526
16.2.5 交易簡介 526
16.2.6 metadata簡介 534
16.2.7 RowSet簡介 537
16.3 重點複習 542
16.4 課後練習 543
16.4.1 選擇題 543
16.4.2 操作題 544
Chapter17 反射與類載入器 545
17.1 運用反射 546
17.1.1 Class與.class文檔 546
17.1.2 使用Class.forName() 548
17.1.3 從Class獲得信息 550
17.1.4 從Class建立對象 553
17.1.5 操作對象方法與成員 556
17.1.6 動態代理 558
17.2 了解類載入器 562
17.2.1 類載入器層級架構 562
17.2.2 建立ClassLoader實例 565
17.3 重點複習 567
17.4 課後練習 568
17.4.1 選擇題 568
17.4.2 操作題 568
Chapter18 自定義泛型、枚舉與注釋 569
18.1 自定義泛型 570
18.1.1 使用extends與? 570
18.1.2 使用super與? 575
18.2 自定義枚舉 578
18.2.1 了解java.lang.
Enum類 578
18.2.2 enum高級運用 581
18.3 關於注釋 587
18.3.1 常用標準注釋 587
18.3.2 自定義注釋類型 590
18.3.3 JDK8標註增強功能 594
18.3.4 執行時期讀取注釋信息 596
18.4 重點複習 599
18.5 課後練習 600
AppendixA 如何使用本書項目 601
A.1項目環境配置 602
A.2 打開案例 602
AppendixB 視窗程式設計 603
B.1 Swing入門 604
B.1.1 簡易需求分析 604
B.1.2 Swing組件簡介 605
B.1.3 設計主視窗與選單列 607
B.1.4 關於版面管理 612
B.1.5 事件處理 615
B.2 文檔打開、存儲與編輯 620
B.2.1 操作打開文檔 620
B.2.2 製作存儲、關閉文檔 623
B.2.3 文字區編輯、剪下、複製、貼上 626