內容簡介
《Java從入門到精通(第6版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細講解了使用Java語言進行程式開發需要掌握的知識。全書分為23章,內容包括初識Java,熟悉Eclipse開發工具,Java語言基礎,流程控制,數組,類和對象,繼承、多態、抽象類與接口,包和內部類,異常處理,字元串,常用類庫,集合類,枚舉類型與泛型,lambda表達式與流處理,I/O(輸入/輸出),反射與注釋,資料庫操作,Swing程式設計,Java繪圖,多執行緒,網路通信,奔跑吧小恐龍,MR人臉識別打卡系統。書中所有知識都結合具體實例進行講解,涉及的程式代碼都給出了詳細的注釋,可以使讀者輕鬆領會Java程式開發的精髓,快速提高開發技能。
作者簡介
明日科技,全稱是吉林省明日科技有限公司,是一家專業從事軟體開發、教育培訓以及軟體開發教育資源整合的高科技公司,其編寫的教材非常注重選取軟體開發中的必需、常用內容,同時也很注重內容的易學、方便性以及相關知識的拓展性,深受讀者喜愛。其教材多次榮獲“全行業優秀暢銷品種”“全國高校出版社優秀暢銷書”等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
圖書目錄
第1篇 基礎知識
第1章 初識Java 2
視頻講解:18分鐘
1.1 Java簡介 2
1.1.1 什麼是Java語言 2
1.1.2 Java的套用領域 3
1.1.3 Java的版本 4
1.1.4 怎樣學好Java 5
1.1.5 Java API文檔 6
1.2 Java語言的特性 6
1.3 搭建Java環境 8
1.3.1 JDK下載 8
1.3.2 在Windows 10系統下搭建JDK環境 9
第2章 熟悉Eclipse開發工具 12
視頻講解:25分鐘
2.1 熟悉Eclipse 12
2.1.1 Eclipse簡介 13
2.1.2 下載Eclipse 13
2.1.3 安裝Eclipse的中文語言包 15
2.1.4 Eclipse的配置與啟動 17
2.1.5 Eclipse工作檯 18
2.1.6 透視圖與視圖 18
2.1.7 選單欄 19
2.1.8 工具列 23
2.1.9 “包資源管理器”視圖 23
2.1.10 “控制台”視圖 24
2.2 使用Eclipse 24
2.2.1 創建Java項目 24
2.2.2 創建Java類檔案 25
2.2.3 使用編輯器編寫程式代碼 26
2.2.4 運行Java程式 28
2.3 程式調試 29
第3章 Java語言基礎 31
視頻講解:104分鐘
3.1 Java主類結構 32
3.2 基本數據類型 33
3.2.1 整數類型 33
3.2.2 浮點類型 35
3.2.3 字元類型 36
3.2.4 布爾類型 38
3.3 變數與常量 38
3.3.1 標識符和關鍵字 38
3.3.2 聲明變數 39
3.3.3 聲明常量 40
3.3.4 變數的有效範圍 41
3.4 運算符 43
3.4.1 賦值運算符 43
3.4.2 算術運算符 44
3.4.3 自增和自減運算符 45
3.4.4 比較運算符 45
3.4.5 邏輯運算符 46
3.4.6 位運算符 47
3.4.7 三元運算符 49
3.4.8 運算符優先權 49
3.5 數據類型轉換 50
3.5.1 隱式類型轉換 51
3.5.2 顯式類型轉換 52
3.6 代碼注釋與編碼規範 52
3.6.1 代碼注釋 52
3.6.2 編碼規範 54
3.7 實踐與練習 55
第4章 流程控制 56
視頻講解:80分鐘
4.1 複合語句 56
4.2 條件語句 57
4.2.1 if條件語句 57
4.2.2 switch多分支語句 60
4.3 循環語句 63
4.3.1 while循環語句 63
4.3.2 do…while循環語句 64
4.3.3 for循環語句 65
4.4 循環控制 67
4.4.1 break語句 67
4.4.2 continue語句 69
4.5 實踐與練習 70
第5章 數組 72
視頻講解:80分鐘
5.1 數組概述 72
5.2 一維數組 72
5.2.1 創建一維數組 73
5.2.2 初始化一維數組 74
5.2.3 使用一維數組 74
5.3 二維數組 75
5.3.1 創建二維數組 75
5.3.2 初始化二維數組 76
5.3.3 使用二維數組 76
5.4 數組的基本操作 77
5.4.1 遍歷數組 77
5.4.2 填充替換數組元素 78
5.4.3 對數組進行排序 80
5.4.4 複製數組 81
5.4.5 查詢數組 82
5.5 數組排序算法 84
5.5.1 冒泡排序 84
5.5.2 直接選擇排序 86
5.5.3 反轉排序 87
5.6 實踐與練習 89
第2篇 面向對象編程
第6章 類和對象 92
視頻講解:71分鐘
6.1 面向對象概述 92
6.1.1 對象 93
6.1.2 類 94
6.1.3 封裝 94
6.1.4 繼承 95
6.1.5 多態 95
6.2 類 96
6.2.1 成員變數 96
6.2.2 成員方法 97
6.2.3 許可權修飾符 97
6.2.4 局部變數 98
6.2.5 局部變數的有效範圍 99
6.2.6 this關鍵字 100
6.3 類的構造方法 101
6.4 靜態變數和靜態方法 102
6.5 類的主方法 105
6.6 對象 106
6.6.1 對象的創建 106
6.6.2 訪問對象的屬性和行為 108
6.6.3 對象的引用 108
6.6.4 對象的銷毀 109
6.7 實踐與練習 110
第7章 繼承、多態、抽象類與接口 112
視頻講解:100分鐘
7.1 類的繼承 112
7.2 Object類 114
7.3 對象類型的轉換 117
7.3.1 向上轉型 117
7.3.2 向下轉型 118
7.4 使用instanceof關鍵字判斷對象類型 120
7.5 方法的重載 121
7.6 final關鍵字 124
7.6.1 final變數 124
7.6.2 final方法 125
7.6.3 final類 126
7.7 多態 126
7.8 抽象類與接口 128
7.8.1 抽象類 128
7.8.2 接口 129
7.9 實踐與練習 131
第8章 包和內部類 133
視頻講解:16分鐘
8.1 Java類包 133
8.1.1 類名衝突 133
8.1.2 完整的類路徑 134
8.1.3 創建包 134
8.1.4 導入包 135
8.2 內部類 136
8.2.1 成員內部類 137
8.2.2 匿名內部類 139
8.3 實踐與練習 140
第3篇 核心技術
第9章 異常處理 142
視頻講解:54分鐘
9.1 異常概述 142
9.2 異常的拋出與捕捉 143
9.2.1 拋出異常 143
9.2.2 捕捉異常 144
9.3 Java常見的異常類 146
9.4 自定義異常 146
9.5 在方法中拋出異常 148
9.5.1 使用throws關鍵字拋出異常 148
9.5.2 使用throw關鍵字拋出異常 148
9.6 運行時異常 150
9.7 異常的使用原則 151
9.8 實踐與練習 151
第10章 字元串 152
視頻講解:113分鐘
10.1 String類 152
10.1.1 聲明字元串 152
10.1.2 創建字元串 153
10.2 連線字元串 154
10.2.1 連線多個字元串 154
10.2.2 連線其他數據類型 154
10.3 獲取字元串信息 156
10.3.1 獲取字元串長度 156
10.3.2 字元串查找 156
10.3.3 獲取指定索引位置的字元 157
10.4 字元串操作 158
10.4.1 獲取子字元串 158
10.4.2 去除空格 159
10.4.3 字元串替換 160
10.4.4 判斷字元串的開始與結尾 161
10.4.5 判斷字元串是否相等 162
10.4.6 按字典順序比較兩個字元串 163
10.4.7 字母大小寫轉換 163
10.4.8 字元串分割 164
10.5 格式化字元串 166
10.5.1 日期和時間字元串格式化 166
10.5.2 常規類型格式化 169
10.6 使用正則表達式 170
10.7 字元串生成器 172
10.8 實踐與練習 174
第11章 常用類庫 175
視頻講解:112分鐘
11.1 包裝類 175
11.1.1 Integer類 176
11.1.2 Double類 178
11.1.3 Boolean類 179
11.1.4 Character類 180
11.1.5 Number類 181
11.2 數字處理 182
11.2.1 數字格式化 182
11.2.2 Math類 184
11.2.3 Random類 188
11.2.4 BigInteger類 190
11.2.5 BigDecimal類 191
11.3 System類 193
11.3.1 控制台輸出字元 193
11.3.2 計時 194
11.4 Scanner類 195
11.5 日期時間類 197
11.5.1 Date類 197
11.5.2 日期時間格式化 198
11.5.3 Calendar類 201
11.6 Runtime類 204
11.6.1 執行本地命令 204
11.6.2 查看記憶體 205
11.7 實踐與練習 206
第12章 集合類 207
視頻講解:60分鐘
12.1 集合類概述 207
12.2 Collection接口 208
12.3 List集合 209
12.3.1 List接口 209
12.3.2 List接口的實現類 209
12.4 Set集合 210
12.5 Map集合 212
12.5.1 Map接口 213
12.5.2 Map接口的實現類 213
12.6 實踐與練習 214
第13章 枚舉類型與泛型 216
視頻講解:61分鐘
13.1 枚舉類型 216
13.1.1 使用枚舉類型設定常量 216
13.1.2 深入了解枚舉類型 218
13.1.3 使用枚舉類型的優勢 221
13.2 泛型 222
13.2.1 回顧向上轉型與向下轉型 222
13.2.2 定義泛型類 223
13.2.3 泛型的常規用法 224
13.2.4 泛型的高級用法 226
13.2.5 泛型總結 228
13.3 實踐與練習 229
第14章 lambda表達式與流處理 230
視頻講解:92分鐘
14.1 lambda表達式 230
14.1.1 lambda表達式簡介 230
14.1.2 lambda表達式實現函式式接口 231
14.1.3 lambda表達式調用外部變數 233
14.1.4 lambda表達式與異常處理 235
14.2 方法的引用 237
14.2.1 引用靜態方法 237
14.2.2 引用成員方法 237
14.2.3 引用帶泛型的方法 238
14.2.4 引用構造方法 239
14.2.5 Fuction接口 242
14.3 流處理 243
14.3.1 Stream接口簡介 244
14.3.2 Optional類 246
14.3.3 Collectors類 247
14.3.4 數據過濾 248
14.3.5 數據映射 252
14.3.6 數據查找 253
14.3.7 數據收集 256
14.4 實踐與練習 260
第15章 I/O(輸入/輸出) 261
視頻講解:97分鐘
15.1 輸入/輸出流 261
15.1.1 輸入流 262
15.1.2 輸出流 263
15.2 File類 264
15.2.1 檔案的創建與刪除 264
15.2.2 獲取檔案信息 266
15.3 檔案輸入/輸出流 267
15.3.1 FileInputStream與FileOutputStream類 267
15.3.2 FileReader和FileWriter類 268
15.4 帶快取的輸入/輸出流 269
15.4.1 BufferedInputStream與BufferedOutputStream類 269
15.4.2 BufferedReader與BufferedWriter類 270
15.5 數據輸入/輸出流 272
15.6 實踐與練習 273
第16章 反射與註解 274
視頻講解:63分鐘
16.1 反射 274
16.1.1 訪問構造方法 275
16.1.2 訪問成員變數 279
16.1.3 訪問成員方法 281
16.2 Annotation註解功能 285
16.2.1 定義Annotation類型 285
16.2.2 訪問Annotation信息 288
16.3 實踐與練習 290
第17章 資料庫操作 292
視頻講解:47分鐘
17.1 資料庫基礎 292
17.1.1 什麼是資料庫 293
17.1.2 資料庫的種類及功能 293
17.1.3 SQL語言 294
17.2 JDBC概述 295
17.2.1 JDBC技術 295
17.2.2 JDBC驅動程式的類型 296
17.3 JDBC中常用的類和接口 296
17.3.1 DriverManager類 296
17.3.2 Connection接口 297
17.3.3 Statement接口 298
17.3.4 PreparedStatement接口 298
17.3.5 ResultSet接口 299
17.4 資料庫操作 300
17.4.1 連線資料庫 300
17.4.2 向資料庫傳送SQL語句 301
17.4.3 處理查詢結果集 301
17.4.4 順序查詢 302
17.4.5 模糊查詢 303
17.4.6 預處理語句 304
17.4.7 添加、修改、刪除記錄 305
17.5 實踐與練習 308
第18章 Swing程式設計 310
視頻講解:229分鐘
18.1 Swing概述 311
18.2 Swing常用窗體 312
18.2.1 JFrame窗體 312
18.2.2 JDialog對話框 314
18.2.3 JOptionPane小型對話框 315
18.3 常用布局管理器 319
18.3.1 null布局 320
18.3.2 FlowLayout流布局管理器 320
18.3.3 BorderLayout邊界布局管理器 322
18.3.4 GridLayout格線布局管理器 323
18.4 常用面板 324
18.4.1 JPanel面板 324
18.4.2 JScrollPane滾動面板 326
18.5 文字標籤組件與圖示 327
18.5.1 JLabel標籤 327
18.5.2 圖示的使用 328
18.6 按鈕組件 329
18.6.1 JButton按鈕 330
18.6.2 JRadioButton單選按鈕 331
18.6.3 JCheckBox複選框 333
18.7 列表組件 334
18.7.1 JComboBox下拉列表框 334
18.7.2 JList列表框 336
18.8 文本組件 337
18.8.1 JTextField文本框 338
18.8.2 JPasswordField密碼框 339
18.8.3 JTextArea文本域 339
18.9 表格組件 340
18.9.1 創建表格 341
18.9.2 DefaultTableModel表格數據模型 342
18.9.3 維護表格模型 343
18.10 事件監聽器 345
18.10.1 ActionEvent動作事件 346
18.10.2 KeyEvent鍵盤事件 347
18.10.3 MouseEvent滑鼠事件 349
18.11 實踐與練習 351
第19章 Java繪圖 352
視頻講解:84分鐘
19.1 Java繪圖類 352
19.1.1 Graphics類 352
19.1.2 Graphics2D類 353
19.2 繪製圖形 353
19.3 繪圖顏色與畫筆屬性 357
19.3.1 設定顏色 357
19.3.2 設定畫筆 358
19.4 繪製文本 359
19.4.1 設定字型 359
19.4.2 顯示文字 360
19.5 顯示圖片 361
19.6 圖像處理 363
19.6.1 放大與縮小 363
19.6.2 圖像翻轉 365
19.6.3 圖像旋轉 367
19.6.4 圖像傾斜 368
19.7 實踐與練習 370
第20章 多執行緒 371
視頻講解:45分鐘
20.1 執行緒簡介 371
20.2 創建執行緒 372
20.2.1 繼承Thread類 372
20.2.2 實現Runnable接口 373
20.3 執行緒的生命周期 376
20.4 操作執行緒的方法 377
20.4.1 執行緒的休眠 377
20.4.2 執行緒的加入 378
20.4.3 執行緒的中斷 380
20.4.4 執行緒的禮讓 381
20.5 執行緒的優先權 382
20.6 執行緒同步 383
20.6.1 執行緒安全 384
20.6.2 執行緒同步機制 385
20.7 實踐與練習 387
第21章 網路通信 388
視頻講解:60分鐘
21.1 網路程式設計基礎 388
21.1.1 區域網路與網際網路 388
21.1.2 網路協定 389
21.1.3 連線埠與套接字 390
21.2 TCP程式 391
21.2.1 InetAddress類 391
21.2.2 ServerSocket類 392
21.2.3 TCP網路程式設計 393
21.3 UDP程式 397
21.3.1 DatagramPacket類 397
21.3.2 DatagramSocket類 398
21.3.3 UDP網路程式設計 398
21.4 實踐與練習 402
第4篇 項目實戰
第22章 奔跑吧小恐龍 404
視頻講解:53分鐘
22.1 開發背景 404
22.2 系統結構設計 405
22.2.1 系統功能結構 405
22.2.2 系統業務流程 405
22.3 項目目錄結構預覽 406
22.4 遊戲模型設計 406
22.4.1 恐龍類 406
22.4.2 障礙類 409
22.5 音效模組設計 411
22.5.1 音頻播放器 411
22.5.2 音效工具類 413
22.6 計分器模組設計 413
22.7 視圖模組設計 416
22.7.1 主窗體 417
22.7.2 遊戲面板 418
22.7.3 成績對話框 420
22.8 遊戲核心功能設計 421
22.8.1 刷新幀 421
22.8.2 滾動背景 422
22.8.3 碰撞檢測 424
22.8.4 鍵盤監聽 425
第23章 MR人臉識別打卡系統 426
視頻講解:145分鐘
23.1 需求分析 426
23.2 系統設計 427
23.2.1 開發環境 427
23.2.2 系統功能結構 427
23.2.3 系統業務流程 428
23.3 資料庫與數據表設計 428
23.3.1 資料庫分析 428
23.3.2 數據表設計 429
23.4 系統資料夾組織結構 430
23.5 工具類設計 432
23.5.1 日期時間工具類 432
23.5.2 資料庫連線工具類 434
23.6 實體類設計 436
23.7 資料庫接口及實現類設計 437
23.7.1 資料庫接口 438
23.7.2 基於MySQL的資料庫接口實現類 439
23.7.3 資料庫接口工廠類 443
23.8 全局會話類設計 443
23.9 服務類設計 445
23.9.1 攝像頭服務 445
23.9.2 人臉識別服務 446
23.9.3 人事服務 449
23.9.4 圖像檔案服務 457
23.10 窗體類設計 458
23.10.1 主窗體 458
23.10.2 主面板 460
23.10.3 登錄對話框 464
23.10.4 考勤報表面板 465
23.10.5 員工管理面板 470
23.10.6 錄入新員工面板 472
23.11 常見問題與解決 474
23.11.1 如何運行項目 474
23.11.2 無法激活人臉識別引擎 475
23.11.3 無法連線MySQL資料庫 475
23.11.4 如何切換成SQLite資料庫 475