Java 從入門到精通, 7/e
明日科技
買這商品的人也買了...
-
$350$298 -
$750$593 -
$1,200$792 -
$650$507 -
$690$545 -
$680$537
相關主題
商品描述
《Java從入門到精通(第7版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細講解了使用Java語言進行程序開發需要掌握的知識。全書分為4篇共24章,內容包括初識Java,開發工具(IDEA、Eclipse),Java語言基礎,流程控制,數組,類和對象,繼承、多態、抽象類與接口,包和內部類,異常處理,字符串,常用類庫,集合類,枚舉類型與泛型,lambda表達式與流處理,I/O(輸入/輸出),反射與註解,數據庫操作,Swing程序設計,Java繪圖,多線程,並發,網絡通信,飛機大戰游戲,MR人臉識別打卡系統。書中所有知識都結合具體實例進行講解,涉及的程序代碼都給出了詳細的註釋,這可以幫助讀者輕松領會Java程序開發的精髓,並快速提高開發技能。
目錄大綱
第1篇 基礎知識
第1章 初識Java 2
1.1 Java簡介 2
1.1.1 什麽是Java語言 2
1.1.2 Java的應用領域 3
1.1.3 Java的版本 3
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章 開發工具 12
2.1 熟悉IDEA 12
2.1.1 下載IDEA 12
2.1.2 安裝IDEA 14
2.1.3 配置IDEA 16
2.1.4 使用IDEA 17
2.2 熟悉Eclipse 22
2.2.1 下載Eclipse 22
2.2.2 Eclipse的配置與啟動 24
2.2.3 Eclipse工作台 25
2.2.4 透視圖與視圖 26
2.2.5 菜單欄 26
2.2.6 工具欄 26
2.2.7 “包資源管理器”視圖 29
2.2.8 “控制台”視圖 29
2.3 使用Eclipse 29
2.3.1 創建Java項目 29
2.3.2 創建Java類文件 33
2.3.3 編寫Java程序 34
2.3.4 運行Java程序 36
2.4 程序調試 38
第3章 Java語言基礎 42
3.1 Java主類結構 42
3.2 基本數據類型 44
3.2.1 整數類型 44
3.2.2 浮點類型 45
3.2.3 字符類型 46
3.2.4 布爾類型 48
3.3 變量與常量 48
3.3.1 標識符和關鍵字 48
3.3.2 聲明變量 50
3.3.3 聲明常量 51
3.3.4 變量的有效範圍 52
3.4 運算符 53
3.4.1 賦值運算符 53
3.4.2 算術運算符 54
3.4.3 自增和自減運算符 55
3.4.4 比較運算符 55
3.4.5 邏輯運算符 56
3.4.6 位運算符 57
3.4.7 復合賦值運算符 58
3.4.8 三元運算符 59
3.4.9 運算符的優先級 60
3.5 數據類型轉換 61
3.5.1 隱式類型轉換 61
3.5.2 顯式類型轉換 62
3.6 代碼註釋與編碼規範 63
3.6.1 代碼註釋 63
3.6.2 編碼規範 64
3.7 實踐與練習 65
第4章 流程控制 66
4.1 復合語句 67
4.2 if條件語句 67
4.2.1 簡單的if條件語句 68
4.2.2 if…else語句 69
4.2.3 if…else if多分支語句 69
4.2.4 if語句的嵌套 71
4.3 switch多分支語句 72
4.3.1 switch語句通用語法 72
4.3.2 switch表達式 74
4.4 while循環語句 74
4.5 do…while循環語句 75
4.6 for循環語句 76
4.6.1 傳統的for語句 76
4.6.2 foreach語句 77
4.7 循環嵌套 78
4.8 循環控制 79
4.8.1 break語句 79
4.8.2 continue語句 81
4.9 實踐與練習 82
第5章 數組 84
5.1 數組概述 84
5.2 一維數組 84
5.2.1 創建一維數組 84
5.2.2 初始化一維數組 86
5.2.3 使用一維數組 86
5.3 二維數組 87
5.3.1 創建二維數組 87
5.3.2 初始化二維數組 88
5.3.3 使用二維數組 88
5.4 數組的基本操作 89
5.4.1 遍歷數組 89
5.4.2 填充替換數組元素 90
5.4.3 對數組進行排序 91
5.4.4 復制數組 92
5.4.5 查詢數組 93
5.5 數組排序算法 95
5.5.1 冒泡排序 95
5.5.2 直接選擇排序 97
5.5.3 反轉排序 98
5.6 實踐與練習 99
第2篇 面向對象編程
第6章 類和對象 102
6.1 面向對象概述 102
6.1.1 對象 102
6.1.2 類 104
6.1.3 封裝 104
6.1.4 繼承 104
6.1.5 多態 105
6.2 類 106
6.2.1 成員變量 106
6.2.2 成員方法 107
6.2.3 權限修飾符 107
6.2.4 局部變量 108
6.2.5 局部變量的有效範圍 109
6.2.6 this關鍵字 109
6.3 類的構造方法 110
6.4 靜態變量和靜態方法 112
6.5 類的主方法 114
6.6 對象 115
6.6.1 對象的創建 115
6.6.2 訪問對象的屬性和行為 116
6.6.3 對象的引用 117
6.6.4 對象的銷毀 118
6.7 實踐與練習 119
第7章 繼承、多態、抽象類與接口 120
7.1 類的繼承 120
7.2 Object類 122
7.3 對象類型的轉換 125
7.3.1 向上轉型 125
7.3.2 向下轉型 126
7.4 instanceof關鍵字及其新特性 127
7.5 方法的重載 129
7.6 final關鍵字 132
7.6.1 final變量 132
7.6.2 final方法 133
7.6.3 final類 133
7.7 record類 134
7.8 多態 135
7.9 抽象類 136
7.10 接口 137
7.10.1 定義接口 137
7.10.2 實現接口 138
7.10.3 接口繼承接口 140
7.10.4 接口的多重繼承 141
7.10.5 接口的默認方法 142
7.10.6 抽象類與接口的區別 142
7.11 實踐與練習 143
第8章 包和內部類 145
8.1 Java類包 145
8.1.1 類名沖突 145
8.1.2 完整的類路徑 146
8.1.3 創建包 146
8.1.4 導入包 147
8.2 內部類 148
8.2.1 成員內部類 149
8.2.2 匿名內部類 151
8.3 實踐與練習 152
第3篇 核心技術
第9章 異常處理 154
9.1 異常概述 154
9.2 異常的拋出與捕捉 155
9.2.1 拋出異常 155
9.2.2 使用try…catch…finally語句捕捉異常 156
9.3 Java常見的異常類 158
9.4 自定義異常 158
9.5 在方法中拋出異常 159
9.5.1 使用throws關鍵字拋出異常 160
9.5.2 使用throw關鍵字拋出異常 160
9.6 運行時異常 162
9.7 try…with…resources語句 162
9.8 異常的使用原則 164
9.9 實踐與練習 164
第10章 字符串 166
10.1 String類 166
10.1.1 聲明字符串 166
10.1.2 創建字符串 167
10.2 連接字符串 168
10.2.1 連接多個字符串 168
10.2.2 連接其他數據類型 168
10.3 獲取字符串信息 170
10.3.1 獲取字符串長度 170
10.3.2 查找字符串 170
10.3.3 獲取指定索引位置的字符 171
10.4 字符串操作 172
10.4.1 獲取子字符串 172
10.4.2 去除空格 173
10.4.3 替換字符串 173
10.4.4 判斷字符串的開始與結尾 174
10.4.5 判斷字符串是否相等 175
10.4.6 按字典順序比較兩個字符串 176
10.4.7 字母大小寫的轉換 177
10.4.8 分割字符串 178
10.5 格式化字符串 179
10.5.1 日期和時間字符串格式化 179
10.5.2 常規類型格式化 182
10.6 使用正則表達式 183
10.7 字符串生成器 185
10.8 實踐與練習 187
第11章 常用類庫 188
11.1 包裝類 188
11.1.1 Integer類 189
11.1.2 Double類 190
11.1.3 Boolean類 191
11.1.4 Character類 192
11.1.5 Number類 194
11.2 數字處理 194
11.2.1 數字格式化 194
11.2.2 Math類 197
11.2.3 Random類 200
11.2.4 BigInteger類 202
11.2.5 BigDecimal類 203
11.3 System類 205
11.3.1 在控制臺中輸出字符 205
11.3.2 計時 206
11.4 Scanner類 207
11.5 日期時間類 208
11.5.1 Date類 209
11.5.2 日期時間格式化類 210
11.5.3 Calendar類 213
11.6 實踐與練習 215
第12章 集合類 216
12.1 集合類概述 216
12.2 Collection接口 217
12.3 List接口 218
12.3.1 List接口概述 218
12.3.2 ArrayList類 218
12.3.3 LinkedList類 219
12.4 遍歷集合中的元素 220
12.4.1 Iterator遍歷集合中的元素 220
12.4.2 使用foreach循環遍歷集合中的元素 221
12.4.3 使用forEach()方法遍歷集合中的元素 222
12.5 使用Predicate操作集合 222
12.6 Set接口 224
12.6.1 Set接口概述 224
12.6.2 HashSet類 224
12.6.3 TreeSet類 225
12.7 Map接口 226
12.7.1 Map接口概述 227
12.7.2 HashMap類 227
12.7.3 遍歷Map集合 228
12.7.4 TreeMap類 229
12.7.5 Properties類 230
12.8 Collections類 232
12.9 實踐與練習 233
第13章 枚舉類型與泛型 234
13.1 枚舉類型 234
13.1.1 使用枚舉類型設置常量 234
13.1.2 深入瞭解枚舉類型 236
13.1.3 使用枚舉類型的優勢 239
13.2 泛型 239
13.2.1 回顧向上轉型與向下轉型 239
13.2.2 定義泛型類 240
13.2.3 泛型的常規用法 241
13.2.4 泛型的高級用法 243
13.2.5 泛型總結 245
13.3 實踐與練習 246
第14章 lambda表達式與流處理 247
14.1 lambda表達式 247
14.1.1 lambda表達式簡介 247
14.1.2 lambda表達式實現函數式接口 248
14.1.3 lambda表達式調用外部變量 250
14.1.4 lambda表達式與異常處理 252
14.2 方法的引用 253
14.2.1 引用靜態方法 253
14.2.2 引用成員方法 254
14.2.3 引用帶泛型的方法 255
14.2.4 引用構造方法 256
14.2.5 Function接口 258
14.3 流處理 259
14.3.1 Stream接口 260
14.3.2 Optional類 262
14.3.3 Collectors類 263
14.3.4 數據過濾 264
14.3.5 數據映射 267
14.3.6 數據查找 268
14.3.7 數據收集 271
14.4 實踐與練習 275
第15章 I/O(輸入/輸出) 276
15.1 輸入/輸出流 276
15.1.1 InputStream字節/Reader字符輸入流 277
15.1.2 OutputStream字節/Writer字符輸出流 278
15.2 File類 279
15.2.1 文件的創建與刪除 279
15.2.2 獲取文件信息 280
15.3 文件輸入/輸出流 281
15.3.1 FileInputStream類和FileOutputStream類 281
15.3.2 FileReader類和FileWriter類 282
15.4 帶緩存的輸入/輸出流 283
15.4.1 BufferedInputStream類和BufferedOutputStream類 283
15.4.2 BufferedReader類和BufferedWriter類 284
15.5 數據輸入/輸出流 285
15.6 對象序列化輸入/輸出流 287
15.6.1 序列化對象 288
15.6.2 反序列化對象 289
15.7 實踐與練習 289
第16章 反射與註解 290
16.1 反射 290
16.1.1 訪問構造方法 291
16.1.2 訪問成員變量 294
16.1.3 訪問成員方法 297
16.2 Annotation註解功能 300
16.2.1 定義Annotation類型 300
16.2.2 訪問Annotation信息 302
16.3 實踐與練習 305
第17章 數據庫操作 306
17.1 數據庫基礎 306
17.1.1 什麽是數據庫 307
17.1.2 數據庫的種類和功能 307
17.1.3 SQL語言 308
17.2 JDBC概述 309
17.2.1 JDBC技術 309
17.2.2 JDBC驅動程序的類型 310
17.3 JDBC中常用的類和接口 310
17.3.1 DriverManager類 310
17.3.2 Connection接口 311
17.3.3 Statement接口 312
17.3.4 PreparedStatement接口 312
17.3.5 ResultSet接口 313
17.4 數據庫操作 314
17.4.1 連接數據庫 314
17.4.2 向數據庫中發送SQL語句 315
17.4.3 處理查詢結果集 315
17.4.4 順序查詢 315
17.4.5 模糊查詢 316
17.4.6 預處理語句 317
17.4.7 添加、修改、刪除記錄 318
17.5 實踐與練習 321
第18章 Swing程序設計 322
18.1 Swing概述 323
18.2 常用窗體 324
18.2.1 JFrame窗體 324
18.2.2 JDialog對話框 326
18.2.3 JOptionPane小型對話框 327
18.3 常用佈局管理器 331
18.3.1 null絕對佈局管理器 331
18.3.2 FlowLayout流佈局管理器 332
18.3.3 BorderLayout邊界佈局管理器 333
18.3.4 GridLayout網格佈局管理器 334
18.4 常用面板 335
18.4.1 JPanel面板 335
18.4.2 JScrollPane滾動面板 337
18.5 文字標簽組件與圖標 338
18.5.1 JLabel標簽 338
18.5.2 圖標的使用 339
18.6 按鈕組件 340
18.6.1 JButton按鈕 340
18.6.2 JRadioButton單選按鈕 341
18.6.3 JCheckBox復選框 343
18.7 列表組件 344
18.7.1 JComboBox下拉列表框 344
18.7.2 JList列表框 346
18.8 文本組件 347
18.8.1 JTextField文本框 347
18.8.2 JPasswordField密碼框 348
18.8.3 JTextArea文本域 349
18.9 表格組件 350
18.9.1 創建表格 350
18.9.2 DefaultTableModel表格數據模型 351
18.9.3 維護表格模型 352
18.10 事件監聽器 354
18.10.1 ActionEvent動作事件 354
18.10.2 KeyEvent鍵盤事件 356
18.10.3 MouseEvent鼠標事件 357
18.11 實踐與練習 359
第19章 Java繪圖 360
19.1 Java繪圖類 360
19.1.1 Graphics類 360
19.1.2 Graphics2D類 361
19.2 繪制圖形 361
19.3 繪圖顏色與畫筆屬性 365
19.3.1 設置顏色 365
19.3.2 設置畫筆 366
19.4 繪制文本 367
19.4.1 設置字體 367
19.4.2 顯示文字 367
19.5 顯示圖片 369
19.6 圖像處理 370
19.6.1 放大與縮小 370
19.6.2 圖像翻轉 372
19.6.3 圖像旋轉 374
19.6.4 圖像傾斜 375
19.7 實踐與練習 376
第20章 多線程 377
20.1 線程簡介 377
20.2 創建線程 378
20.2.1 繼承Thread類 378
20.2.2 實現Runnable接口 379
20.2.3 實現Callable接口 381
20.3 線程的生命周期 382
20.4 操作線程的方法 383
20.4.1 線程的休眠 383
20.4.2 線程的加入 384
20.4.3 線程的中斷 386
20.4.4 線程的禮讓 387
20.5 線程的優先級 387
20.6 線程同步 389
20.6.1 線程安全 389
20.6.2 線程同步機制 390
20.7 實踐與練習 392
第21章 並發 393
21.1 並發編程 393
21.2 yield()方法 394
21.3 線程上下文切換與死鎖 395
21.3.1 線程的上下文切換 396
21.3.2 線程死鎖 396
21.3.3 避免死鎖 398
21.4 守護線程與用戶線程 399
21.4.1 守護線程與用戶線程的區別 399
21.4.2 守護線程 399
21.5 ThreadLocal 401
21.6 生產者與消費者模式 402
21.6.1 wait()方法和notify()方法 403
21.6.2 await()方法和signal()方法 405
21.7 線程池 408
21.8 實踐與練習 412
第22章 網絡通信 413
22.1 網絡程序設計基礎 413
22.1.1 局域網與互聯網 413
22.1.2 網絡協議 414
22.1.3 埠與套接字 415
22.2 TCP程序 415
22.2.1 InetAddress類 416
22.2.2 ServerSocket類 417
22.2.3 TCP網絡程序設計 418
22.3 UDP程序 421
22.3.1 DatagramPacket類 421
22.3.2 DatagramSocket類 421
22.3.3 UDP網絡程序設計 422
22.4 NIO同步非阻塞網絡編程 425
22.5 AIO異步非阻塞網絡編程 428
22.6 實踐與練習 429
第4篇 項目實戰
第23章 飛機大戰游戲 432
23.1 需求分析 432
23.2 系統設計 433
23.2.1 系統目標 433
23.2.2 系統功能結構 433
23.2.3 業務流程圖 433
23.2.4 系統預覽 433
23.3 技術準備 434
23.3.1 Timer類的概念 434
23.3.2 Timer類註意事項 435
23.4 公共模塊設計 435
23.5 玩家飛機模型設計 437
23.6 敵機模型設計 439
23.7 導彈模型設計 440
23.8 空投物資模型設計 441
23.9 游戲面板模型設計 442
第24章 MR人臉識別打卡系統 449
24.1 需求分析 449
24.2 系統設計 450
24.2.1 開發環境 450
24.2.2 系統功能結構 450
24.2.3 系統業務流程 450
24.3 數據庫與數據表設計 451
24.3.1 數據庫分析 451
24.3.2 數據表設計 452
24.4 系統文件夾組織結構 453
24.5 工具類的設計 454
24.5.1 日期時間工具類 455
24.5.2 數據庫連接工具類 457
24.6 實體類的設計 458
24.7 數據庫接口及實現類設計 459
24.7.1 數據庫接口 460
24.7.2 基於MySQL數據庫的接口實現類 461
24.7.3 數據庫接口工廠類 464
24.8 全局會話類的設計 464
24.9 服務類的設計 466
24.9.1 攝像頭服務 466
24.9.2 人臉識別服務 467
24.9.3 人事服務 470
24.9.4 圖像文件服務 476
24.10 窗體類的設計 478
24.10.1 主窗體 478
24.10.2 主面板 479
24.10.3 登錄對話框 483
24.10.4 考勤報錶面板 484
24.10.5 員工管理面板 488
24.10.6 錄入新員工面板 490
24.11 常見問題與解決 492
24.11.1 如何運行項目 492
24.11.2 無法激活人臉識別引擎 492
24.11.3 無法連接MySQL數據庫 493
24.11.4 如何切換成SQLite數據庫 493