本書共分為14章,主要內容包括Java概述、Java語言基礎語法、面向對象思想、類設計基礎、類設計進階、異常處理機制、基礎類庫、集合類、GUI與事件處理機制、Java多線程機制、I/O流類、數(shù)據(jù)庫編程、網(wǎng)絡應用編程初步、綜合實踐。
本書面向以Java為第一種程序語言的初學者,強化面向對象的原理和機制,強調“做中學”,每章開頭用思維導圖的方式,引導讀者帶著問題去學習該章的內容,以便牢固地掌握知識。另外,作者錄制了知識點和案例的講解視頻,讀者可以方便地通過掃碼的方式查看,同時,計蒜客在線教育團隊,為讀者提供了伴隨式的在線編程平臺支持,讀者可以將圖書和線上編程結合起來學習。
劉彥君,副教授,長期從事計算機及相關專業(yè)的教學和科研工作。主講《Java語言》《JavaEE》《設計模式》等課程。曾編寫《JavaEE開發(fā)技術與案例教程》《數(shù)據(jù)庫原理與應用》等多本教材,對程序設計語言用于專業(yè)課程實踐環(huán)節(jié),培養(yǎng)學生計算思維和分析問題、解決問題能力有深入體會。
第1章 Java概述
1.1 Java 語言簡介 2
1.1.1 Java 語言的產(chǎn)生 2
1.1.2 Java 語言的版本變遷 2
1.1.3 Java 語言特點 4
1.2 初識Java 程序 6
1.2.1 Java 程序的兩種類型 6
1.2.2 Java 程序的結構特點 6
1.3 Java 開發(fā)與運行環(huán)境 7
1.3.1 使用JDK 7
1.3.2 使用IDE 10
1.4 Java 語言與Java 技術 12
1.5 怎么學習Java 12
1.5.1 入門之道 12
1.5.2 精通之路 14
1.6 小結 15
1.7 習題 16
第2章 Java語言基礎語法
2.1 數(shù)據(jù)類型和運算符號 18
2.1.1 Java 數(shù)據(jù)類型 18
2.1.2 標識符與關鍵字 23
2.1.3 運算符 25
2.2 輸入輸出 33
2.2.1 輸入 33
2.2.2 輸出 36
2.3 流程控制 38
2.3.1 順序控制語句 38
2.3.2 選擇控制語句 39
2.3.3 循環(huán)控制語句 51
2.3.4 選擇控制語句與循環(huán)控制語句的嵌套 62
2.3.5 break 語句與continue語句 62
2.4 數(shù)組 67
2.4.1 一維數(shù)組 67
2.4.2 二維數(shù)組 73
2.5 小結 78
2.6 習題 79
第3章 面向對象思想
3.1 從數(shù)據(jù)開始 81
3.1.1 類的角色 81
3.1.2 事物數(shù)據(jù)化 81
3.1.3 對象的特殊性 82
3.1.4 對象分類 83
3.1.5 對象處理 84
3.2 面向對象與面向過程 86
3.2.1 問題與解決問題的思維方式 86
3.2.2 面向對象的內涵 90
3.2.3 面向對象和面向過程思想的關系 93
3.3 面向對象語言的三大特性 93
3.3.1 封裝性 94
3.3.2 繼承性 94
3.3.3 多態(tài)性 94
3.4 UML2.0 簡介 95
3.4.1 UML 概述 95
3.4.2 類圖 96
3.4.3 對象圖 96
3.5 本章小結 96
3.6 習題 97
第4章 類設計基礎
4.1 類 99
4.1.1 封裝和隱藏 99
4.1.2 類的定義 99
4.1.3 域的定義 100
4.1.4 方法的定義 100
4.1.5 方法的重載 103
4.1.6 方法的遞歸 104
4.2 對象 106
4.2.1 對象的聲明與創(chuàng)建 106
4.2.2 對象的使用 107
4.2.3 構造方法 109
4.2.4 對象的內存模型 110
4.2.5 this 111
4.2.6 參數(shù)傳遞 113
4.2.7 對象數(shù)組 117
4.2.8 static 關鍵字 120
4.2.9 @Deprecated注解 125
4.3 訪問權限 127
4.3.1 private 修飾成員 127
4.3.2 public 修飾成員 127
4.3.3 protected 修飾成員 129
4.3.4 默認的訪問權限 130
4.3.5 public 修飾類 130
4.4 對象組合 130
4.5 嵌套類 136
4.6 Java 的包 138
4.6.1 package 語句 139
4.6.2 import 語句 140
4.6.3 import static 語句 140
4.7 小結 142
4.8 習題 143
第5章 類設計進階
5.1 類的繼承 146
5.1.1 子類的定義 146
5.1.2 域的隱藏和方法的重寫 150
5.1.3 super 關鍵字 152
5.1.4 Object 類 153
5.1.5 instanceof 關鍵字 155
5.1.6 子類的可訪問性 156
5.1.7 final 關鍵字 158
5.1.8 @Override 注解 160
5.1.9 繼承與組合的比較 160
5.2 類的多態(tài) 163
5.2.1 對象的賦值兼容規(guī)則 163
5.2.2 多態(tài)的實現(xiàn) 164
5.2.3 匿名類 168
5.3 抽象類與接口 169
5.3.1 抽象類 169
5.3.2 接口 171
5.3.3 抽象類與接口的比較 173
5.4 類及類間關系的UML 表示 174
5.4.1 類的表示 174
5.4.2 對象的表示 176
5.4.3 接口的表示 176
5.4.4 類間關系及UML 表示 176
5.5 小結 179
5.6 習題 180
第6章 異常處理機制
6.1 什么是異!182
6.1.1 異常的概念 182
6.1.2 異常的類型 182
6.1.3 程序中的常見異常類型 183
6.2 異常處理 185
6.2.1 異常處理機制 185
6.2.2 try-catch-finally 異常處理語句 186
6.2.3 throw 異常拋出語句 189
6.2.4 自定義異常類 190
6.2.5 方法聲明拋出異常 191
6.2.6 finally 和return 193
6.3 小結 193
6.4 習題 193
第7章 基礎類庫
7.1 為類分類 195
7.1.1 Java 類包 195
7.1.2 包和類層次體系 196
7.1.3 在繼承與創(chuàng)新中發(fā)展 196
7.1.4 哪些是常用的類 197
7.2 字符串類與字符串處理 197
7.2.1 字符串處理問題 197
7.2.2 字符串類 199
7.2.3 Scanner 類與字符串 204
7.3 正則表達式與字符串處理 205
7.3.1 正則表達式 205
7.3.2 Pattern 類和Matcher 類 207
7.4 數(shù)學類與數(shù)學計算 207
7.5 日期、日歷和時間類 211
7.5.1 日期類Date 211
7.5.2 日歷類Calendar 212
7.5.3 本地日期和時間類 213
7.6 包裝類 215
7.7 系統(tǒng)類 216
7.7.1 System 類 216
7.7.2 Runtime 類 217
7.7.3 Java 垃圾回收機制 218
7.8 其他常用類 219
7.8.1 Objects 類與Object 類 219
7.8.2 Class 類和反射機制 222
7.9 幾個重要的接口 223
7.9.1 Observer 接口和Observable 類 223
7.9.2 Comparator 與Comparable 接口 225
7.10 小結 228
7.11 習題 228
第8章 集合類
8.1 泛型 230
8.1.1 什么是泛型 230
8.1.2 泛型類的定義 232
8.1.3 泛型接口的定義 234
8.1.4 泛型方法的定義 234
8.1.5 泛型參數(shù)的限定 235
8.2 集合類總覽 237
8.2.1 集合類及其特點 237
8.2.2 Java 的集合類 237
8.3 List 集合 239
8.3.1 List 接口 239
8.3.2 ArrayList 集合類 240
8.3.3 LinkedList 集合類 242
8.4 Set 集合 243
8.4.1 Set 接口 244
8.4.2 HashSet 集合類 244
8.4.3 TreeSet 集合類 245
8.5 Map 集合 247
8.5.1 Map 接口 247
8.5.2 HashMap 集合類 248
8.5.3 TreeMap 集合類 249
8.6 集合元素的操作 250
8.6.1 使用Iterator迭代器 250
8.6.2 使用Collections 252
8.6.3 使用Lambda表達式 255
8.7 小結 261
8.8 習題 261
第9章 GUI與事件處理機制
9.1 AWT 263
9.1.1 AWT 組件 263
9.1.2 AWT 容器 265
9.2 swing 265
9.2.1 swing 組件 266
9.2.2 swing 容器 273
9.2.3 布局管理器 277
9.3 理解事件及事件處理機制 287
9.3.1 理解事件 287
9.3.2 ActionEvent 事件 288
9.3.3 MouseEvent 事件 291
9.3.4 KeyEvent 事件 293
9.3.5 ItemEvent 事件 295
9.3.6 FocusEvent 事件 298
9.3.7 DocumentEvent事件 298
9.3.8 窗口事件 299
9.4 小結 300
9.5 習題 301
第10章 Java多線程機制
10.1 線程基本概念 303
10.1.1 進程與線程 303
10.1.2 線程的執(zhí)行 303
10.1.3 線程的作用 304
10.1.4 進程與線程的區(qū)別 304
10.2 線程的創(chuàng)建方法 305
10.2.1 擴展Thread 類 305
10.2.2 實現(xiàn)接口Runnable 306
10.2.3 用Callable 和FutureTask定義線程 307
10.3 線程狀態(tài)及轉換 308
10.3.1 線程的狀態(tài) 308
10.3.2 線程狀態(tài)轉換 308
10.4 線程調度 309
10.4.1 線程棧模型 309
10.4.2 線程優(yōu)先級 309
10.5 線程常用方法 311
10.5.1 常用方法 311
10.5.2 線程讓步 313
10.5.3 線程聯(lián)合 314
10.5.4 守護線程 315
10.5.5 線程中斷 317
10.6 線程同步與鎖機制 319
10.6.1 線程同步概述 319
10.6.2 線程同步舉例 321
10.6.3 線程安全 323
10.6.4 線程死鎖 325
10.7 線程的交互 327
10.7.1 線程交互概述 327
10.7.2 wait() 方法和
notify() 方法 327
10.8 小結 329
10.9 習題 329
第11章 I/O流類
11.1 理解 I/O流的作用 332
11.1.1 什么是流 332
11.1.2 流的分類 332
11.2 File 類 334
11.2.1 文件對象與屬性 334
11.2.2 目錄操作 336
11.2.3 文件的操作 337
11.2.4 Scanner 類 訪問文件 339
11.3 常用 I/O流類 340
11.3.1 字節(jié)流 340
11.3.2 字符流 344
11.3.3 數(shù)據(jù)流 346
11.3.4 緩沖流 347
11.3.5 隨機流 350
11.4 對象串行化 352
11.4.1 對象流 352
11.4.2 對象的串行化 353
11.4.3 對象輸入流與對象輸出流 353
11.5 NIO 355
11.5.1 NIO 與IO 355
11.5.2 NIO 的主要組成 部分 356
11.5.3 Buffers 357
11.5.4 Channels 359
11.6 小結 362
11.7 習題 363
第12章 數(shù)據(jù)庫編程
12.1 MySQL 數(shù)據(jù)庫與 SQL 命令 365
12.1.1 MySQL數(shù)據(jù)庫及安裝 365
12.1.2 SQL 命令 368
12.1.3 從文件導入數(shù)據(jù) 371
12.2 連接數(shù)據(jù)庫 372
12.2.1 四種驅動類型 372
12.2.2 JDBC 驅動程序與 連接(類型 IV) 373
12.2.3 使用 JDBC-ODBC 橋 374
12.2.4 無數(shù)據(jù)源方式 376
12.3 JDBC 編程 378
12.3.1 JDBC API 378
12.3.2 使用SQL 語句操作數(shù)據(jù) 379
12.3.3 利用可更新結果集操作數(shù)據(jù) 382
12.3.4 使用RowSet查詢結果 383
12.3.5 編譯預處理 385
12.3.6 連接池簡介 387
12.4 什么是DAO 388
12.5 小結 392
12.6 習題 392
第13章 網(wǎng)絡應用編程初步
13.1 基礎知識 394
13.1.1 網(wǎng)絡基本概念 394
13.1.2 TCP 和UDP 協(xié)議 395
13.1.3 URL 395
13.2 常用類 396
13.2.1 URL 類 396
13.2.2 InetAddress 類 397
13.2.3 TCP 通信類 397
13.2.4 UDP 通信類 398
13.3 基于TCP 的編程 400
13.4 基于UDP 的編程 403
13.5 基于NIO 的編程 405
13.5.1 SocketChannel 類 405
13.5.2 ServerSocketChannel類 405
13.5.3 Selector 類 405
13.5.4 SelectionKey 類 406
13.5.5 應用舉例 406
13.6 小結 412
13.7 習題 412
第14章 綜合實踐
14.1 談談設計 414
14.1.1 設計與方法 414
14.1.2 好的設計 414
14.2 談談重構 415
14.3 實踐題目 421
14.3.1 學生成績管理軟件 421
14.3.2 表格驅動的計算 421
14.3.3 電梯運行模擬 422