定 價:¥98.00
作 者: | 林信良 |
出版社: | 清華大學(xué)出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302501183 | 出版時間: | 2018-06-01 | 包裝: | |
開本: | 頁數(shù): | 字?jǐn)?shù): |
Chapter 1 Java平臺概論 1
1.1 Java不只是語言 2
1.1.1 前世今生 2
1.1.2 三大平臺 5
1.1.3 JCP與JSR 6
1.1.4 Oracle JDK與OpenJDK 7
1.1.5 建議的學(xué)習(xí)路徑 8
1.2 JVM/JRE/JDK 12
1.2.1 什么是JVM 12
1.2.2 區(qū)分JRE與JDK 14
1.2.3 下載、安裝JDK 15
1.2.4 認(rèn)識JDK安裝內(nèi)容 18
1.3 重點復(fù)習(xí) 19
Chapter 2 從JDK到IDE 21
2.1 從Hello World開始 22
2.1.1 撰寫Java原始碼 22
2.1.2 PATH是什么 24
2.1.3 JVM(java)與CLASSPATH 27
2.1.4 編譯程序(javac)與
CLASSPATH 29
2.2 管理原始碼與位碼文檔 30
2.2.1 編譯程序(javac)與
SOURCEPATH 30
2.2.2 使用package管理類 32
2.2.3 使用import偷懶 34
2.3 初識模塊平臺系統(tǒng) 36
2.3.1 JVM(java)與module-
path 37
2.3.2 編譯程序(javac)與
module-path 39
2.3.3 編譯程序(javac)與
module-source-path 40
2.4 使用IDE 41
2.4.1 IDE項目管理基礎(chǔ) 41
2.4.2 使用了哪個JRE 47
2.4.3 類文檔版本 49
2.5 重點復(fù)習(xí) 51
Chapter 3 基礎(chǔ)語法 53
3.1 類型、變量與運算符 54
3.1.1 類型 54
3.1.2 變量 57
3.1.3 運算符 60
3.1.4 類型轉(zhuǎn)換 65
3.2 流程控制 68
3.2.1 if...else條件式 68
3.2.2 switch條件式 70
3.2.3 for循環(huán) 72
3.2.4 while循環(huán) 73
3.2.5 break、continue 74
3.3 重點復(fù)習(xí) 76
3.4 課后練習(xí) 77
Chapter 4 認(rèn)識對象 78
4.1 類與對象 79
4.1.1 定義類 79
4.1.2 使用標(biāo)準(zhǔn)類 81
4.1.3 對象指定與相等性 84
4.2 基本類型打包器 86
4.2.1 打包基本類型 86
4.2.2 自動裝箱、拆箱 87
4.2.3 自動裝箱、拆箱的內(nèi)幕 88
4.3 數(shù)組對象 90
4.3.1 數(shù)組基礎(chǔ) 91
4.3.2 操作數(shù)組對象 93
4.3.3 數(shù)組復(fù)制 98
4.4 字符串對象 100
4.4.1 字符串基礎(chǔ) 101
4.4.2 字符串特性 103
4.4.3 字符串編碼 107
4.5 查詢Java API文件 108
4.6 重點復(fù)習(xí) 113
4.7 課后練習(xí) 114
Chapter 5 對象封裝 116
5.1 何謂封裝 117
5.1.1 封裝對象初始流程 117
5.1.2 封裝對象操作流程 119
5.1.3 封裝對象內(nèi)部數(shù)據(jù) 121
5.2 類語法細節(jié) 123
5.2.1 public權(quán)限修飾 123
5.2.2 關(guān)于構(gòu)造函數(shù) 125
5.2.3 構(gòu)造函數(shù)與方法重載 126
5.2.4 使用this 128
5.2.5 static類成員 130
5.2.6 不定長度自變量 135
5.2.7 內(nèi)部類 136
5.2.8 傳值調(diào)用 138
5.3 重點復(fù)習(xí) 140
5.4 課后練習(xí) 141
Chapter 6 繼承與多態(tài) 142
6.1 何謂繼承 143
6.1.1 繼承共同行為 143
6.1.2 多態(tài)與is-a 147
6.1.3 重新定義行為 150
6.1.4 抽象方法、抽象類 153
6.2 繼承語法細節(jié) 154
6.2.1 protected成員 154
6.2.2 重新定義的細節(jié) 156
6.2.3 再看構(gòu)造函數(shù) 157
6.2.4 再看final關(guān)鍵字 159
6.2.5 java.lang.Object 160
6.2.6 關(guān)于垃圾收集 165
6.2.7 再看抽象類 167
6.3 重點復(fù)習(xí) 169
6.4 課后練習(xí) 170
Chapter 7 接口與多態(tài) 171
7.1 何謂接口 172
7.1.1 接口定義行為 172
7.1.2 行為的多態(tài) 175
7.1.3 解決需求變化 178
7.2 接口語法細節(jié) 183
7.2.1 接口的默認(rèn) 183
7.2.2 匿名內(nèi)部類 187
7.2.3 使用enum枚舉常數(shù) 190
7.3 重點復(fù)習(xí) 192
7.4 課后練習(xí) 193
Chapter 8 異常處理 194
8.1 語法與繼承架構(gòu) 195
8.1.1 使用try、catch 195
8.1.2 異常繼承架構(gòu) 197
8.1.3 要抓還是要拋 202
8.1.4 貼心還是造成麻煩 205
8.1.5 認(rèn)識堆棧追蹤 206
8.1.6 關(guān)于assert 210
8.2 異常與資源管理 213
8.2.1 使用finally 213
8.2.2 自動嘗試關(guān)閉資源 215
8.2.3 java.lang.AutoCloseable
接口 217
8.3 重點復(fù)習(xí) 221
8.4 課后練習(xí) 222
Chapter 9 Collection與Map 223
9.1 使用Collection收集對象 224
9.1.1 認(rèn)識Collection架構(gòu) 224
9.1.2 具有索引的List 225
9.1.3 內(nèi)容不重復(fù)的Set 228
9.1.4 支持隊列操作的Queue 232
9.1.5 使用泛型 234
9.1.6 簡介Lambda表達式 238
9.1.7 Interable與
Iterator 240
9.1.8 Comparable與
Comparator 243
9.2 鍵值對應(yīng)的Map 248
9.2.1 常用Map操作類 249
9.2.2 訪問Map鍵值 252
9.3 不可變的Collection
與Map 255
9.3.1 淺談不可變特性 255
9.3.2 Collections的
unmodifiableXXX()
方法 256
9.3.3 List、Set、Map的of()
方法 258
9.4 重點復(fù)習(xí) 260
9.5 課后練習(xí) 262
Chapter 10 輸入/輸出 263
10.1 InputStream與
OutputStream 264
10.1.1 串流設(shè)計的概念 264
10.1.2 串流繼承架構(gòu) 266
10.1.3 串流處理裝飾器 269
10.2 字符處理類 273
10.2.1 Reader與Writer繼承
架構(gòu) 274
10.2.2 字符處理裝飾器 275
10.3 重點復(fù)習(xí) 277
10.4 課后練習(xí) 278
Chapter 11 線程與并行API 279
11.1 線程 280
11.1.1 線程簡介 280
11.1.2 Thread與Runnable 282
11.1.3 線程生命周期 284
11.1.4 關(guān)于ThreadGroup 290
11.1.5 synchronized與
volatile 292
11.1.6 等待與通知 301
11.2 并行API 305
11.2.1 Lock、ReadWriteLock與
Condition 305
11.2.2 使用Executor 313
11.2.3 并行Collection簡介 323
11.3 重點復(fù)習(xí) 326
11.4 課后練習(xí) 327
Chapter 12 Lambda 328
12.1 認(rèn)識Lambda語法 329
12.1.1 Lambda語法概覽 329
12.1.2 Lambda表達式與函數(shù)
接口 332
12.1.3 Lambda遇上this與
final 334
12.1.4 方法與構(gòu)造函數(shù)參考 336
12.1.5 接口默認(rèn)方法 338
12.2 Functional與Stream API 343
12.2.1 使用Optional取代
null 343
12.2.2 標(biāo)準(zhǔn)API的函數(shù)接口 345
12.2.3 使用Stream進行管道
操作 348
12.2.4 進行Stream的reduce
與collect 351
12.2.5 關(guān)于flatMap()方法 356
12.2.6 Stream相關(guān)API 359
12.2.7 JDK9 Optional與
Stream增強 360
12.3 Lambda、平行化與異步
處理 362
12.3.1 Stream與平行化 362
12.3.2 Arrays與平行化 366
12.3.3 CompletableFuture
非同步處理 367
12.3.4 JDK9 CompletableFuture
增強 369
12.4 重點復(fù)習(xí) 370
12.5 課后練習(xí) 371
Chapter 13 時間與日期 372
13.1 認(rèn)識時間與日期 373
13.1.1 時間的度量 373
13.1.2 年歷簡介 374
13.1.3 認(rèn)識時區(qū) 375
13.2 認(rèn)識Date與Calendar 376
13.2.1 時間軸上瞬間的Date 376
13.2.2 格式化時間日期的
DateFormat 377
13.2.3 處理時間日期的
Calendar 379
13.2.4 設(shè)定TimeZone 382
13.3 新時間日期API 383
13.3.1 機器時間觀點的API 383
13.3.2 人類時間觀點的API 385
13.3.3 對時間的運算 387
13.3.4 年歷系統(tǒng)設(shè)計 389
13.4 重點復(fù)習(xí) 390
13.5 課后練習(xí) 391
Chapter 14 NIO與NIO2 393
14.1 認(rèn)識NIO 394
14.1.1 NIO概述 394
14.1.2 Channel架構(gòu)與操作 395
14.1.3 Buffer架構(gòu)與操作 396
14.2 NIO2文件系統(tǒng) 398
14.2.1 NIO2架構(gòu) 398
14.2.2 操作路徑 399
14.2.3 屬性讀取與設(shè)定 401
14.2.4 操作文檔與目錄 404
14.2.5 讀取、訪問目錄 406
14.2.6 過濾、搜索文檔 410
14.3 重點復(fù)習(xí) 412
14.4 課后練習(xí) 413
Chapter 15 通用API 414
15.1 日志 415
15.1.1 日志API簡介 415
15.1.2 指定日志層級 417
15.1.3 使用Handler與
Formatter 419
15.1.4 自定義Handler、Formatter
與Filter 420
15.1.5 使用logging.
properties 422
15.2 國際化基礎(chǔ) 423
15.2.1 使用ResourceBundle 423
15.2.2 使用Locale 424
15.3 規(guī)則表示式 426
15.3.1 規(guī)則表示式簡介 426
15.3.2 Pattern與Matcher 433
15.4 處理數(shù)字 435
15.4.1 使用BigInteger 435
15.4.2 使用BigDecimal 437
15.4.3 數(shù)字的格式化 439
15.5 再談堆棧追蹤 441
15.5.1 獲取
StackTraceElement 441
15.5.2 JDK9的Stack-
Walking API 443
15.6 重點復(fù)習(xí) 447
15.7 課后練習(xí) 448
Chapter 16 整合數(shù)據(jù)庫 449
16.1 JDBC入門 450
16.1.1 JDBC簡介 450
16.1.2 連接數(shù)據(jù)庫 454
16.1.3 使用Statement、
ResultSet 459
16.1.4 使用PreparedStatement、
CallableStatement 464
16.2 JDBC進階 468
16.2.1 使用DataSource取得
聯(lián)機 468
16.2.2 使用ResultSet卷動、
更新數(shù)據(jù) 471
16.2.3 批次更新 473
16.2.4 Blob與Clob 474
16.2.5 交易簡介 474
16.2.6 metadata簡介 481
16.2.7 RowSet簡介 484
16.3 重點復(fù)習(xí) 486
16.4 課后練習(xí) 487
Chapter 17 反射與類加載器 489
17.1 運用反射 490
17.1.1 Class與.class文檔 490
17.1.2 使用Class.
forName() 492
17.1.3 從Class獲得信息 494
17.1.4 從Class建立對象 496
17.1.5 操作對象方法與成員 499
17.1.6 動態(tài)代理 501
17.1.7 當(dāng)反射遇上模塊 505
17.1.8 使用ServiceLoader 511
17.2 了解類加載器 513
17.2.1 JDK9類加載器層級 513
17.2.2 建立ClassLoader
實例 516
17.3 重點復(fù)習(xí) 517
17.4 課后練習(xí) 519
Chapter 18 自定義泛型、枚舉與注釋 520
18.1 自定義泛型 521
18.1.1 使用extends與? 521
18.1.2 使用super與? 525
18.2 自定義枚舉 528
18.2.1 了解java.lang.Enum類 528
18.2.2 enum高*運用 531
18.3 關(guān)于注釋 536
18.3.1 常用標(biāo)準(zhǔn)注釋 536
18.3.2 自定義注釋類型 540
18.3.3 執(zhí)行時期讀取注釋信息 545
18.4 重點復(fù)習(xí) 548
18.5 課后練習(xí) 549
Chapter 19 深入模塊化 550
19.1 運用模塊 551
19.1.1 模塊的種類 551
19.1.2 requires、exports與
opens細節(jié) 554
19.1.3 修補模塊 557
19.1.4 放寬模塊封裝與依賴 558
19.2 模塊API 560
19.2.1 使用Module 560
19.2.2 使用
ModuleDescriptor 562
19.2.3 淺談ModuleLayer 562
19.3 打包模塊 564
19.3.1 使用jar打包 564
19.3.2 使用jmod打包 566
19.3.3 使用jlink建立執(zhí)行時期
映像 568