內容簡介
明日科技編著的《Java從入門到精通》以初、中級程式設計師為對象,先從Java語言基礎學起,再學習Java的核心技術,然後學習Swing的高級套用,最後學習開發一個完整項目。
包括初識Java,熟悉Eclipse開發工具,Java語言基礎,流程控制,字元串,數組,類和對象,包裝類,數字處理類,接口、繼承與多態,類的高級特性,異常處理,Swing程式設計,集合類,I/O(輸入/輸出),反射,枚舉類型與泛型,多執行緒,網路通信,資料庫操作,Swing表格組件,Swing樹組件,Swing其他高級組件,高級布局管理器,高級事件處理,AWT繪圖與音頻播放,列印技術和企業進銷存管理系統等。
書中所有知識都結合具體實例進行介紹,涉及的程式代碼給出了詳細的注釋,可以使讀者輕鬆領會Java程式開發的精髓,快速提高開發技能。
目錄
目錄
第1篇 基礎知識
第1章 初識Java 2
視頻講解:34分鐘
1.1 Java簡介 3
1.1.1 什麼是Java語言 3
1.1.2 Java的套用領域 3
1.1.3 Java的版本 4
1.1.4 怎樣學好Java 5
1.1.5 JavaAPI文檔 6
1.2 Java語言的特性 7
1.2.1 簡單 7
1.2.2 面向對象 7
1.2.3 分布性 7
1.2.4 可移植性 7
1.2.5 解釋型 8
1.2.6 安全性 8
1.2.7 健壯性 8
1.2.8 多執行緒 8
1.2.9 高性能 8
1.2.10 動態 8
1.3 搭建Java環境 9
1.3.1 JDK下載 9
1.3.2 Windows系統的JDK環境 11
1.4 第一個Java程式 15
1.5 小結 17
1.6 實踐與練習 17
第2章 熟悉Eclipse開發工具 18
視頻講解:35分鐘
2.1 熟悉Eclipse 19
2.1.1 Eclipse簡介 19
2.1.2 下載Eclipse 19
2.1.3 安裝Eclipse的中文語言包 21
2.1.4 Eclipse的配置與啟動 23
2.1.5 Eclipse工作檯 24
2.1.6 透視圖與視圖 25
2.1.7 選單欄 25
2.1.8 工具列 28
2.1.9 “包資源管理器”視圖 29
2.1.10 “控制台”視圖 30
2.2 使用Eclipse 30
2.2.1 創建Java項目 30
2.2.2 創建Java類檔案 30
2.2.3 使用編輯器編寫程式代碼 31
2.2.4 運行Java程式 34
2.3 程式調試 34
2.4 小結 36
2.5 實踐與練習 36
第3章 Java語言基礎 37
視頻講解:37分鐘
3.1 Java主類結構 38
3.1.1 包聲明 38
3.1.2 聲明成員變數和局部變數 39
3.1.3 編寫主方法 39
3.1.4 導入API類庫 39
3.2 基本數據類型 39
3.2.1 整數類型 40
3.2.2 浮點類型 41
3.2.3 字元類型 42
3.2.4 布爾類型 43
3.3 變數與常量 43
3.3.1 標識符和關鍵字 44
3.3.2 聲明變數 44
3.3.3 聲明常量 45
3.3.4 變數的有效範圍 46
3.4 運算符 47
3.4.1 賦值運算符 48
3.4.2 算術運算符 49
3.4.3 自增和自減運算符 50
3.4.4 比較運算符 50
3.4.5 邏輯運算符 51
3.4.6 位運算符 52
3.4.7 三元運算符 54
3.4.8 運算符優先權 54
3.5 數據類型轉換 55
3.5.1 隱式類型轉換 56
3.5.2 顯式類型轉換 57
3.6 代碼注釋與編碼規範 58
3.6.1 代碼注釋 58
3.6.2 編碼規範 59
3.7 小結 60
3.8 實踐與練習 60
第4章 流程控制 61
視頻講解:25分鐘
4.1 複合語句 62
4.2 條件語句 62
4.2.1 if條件語句 63
4.2.2 switch多分支語句 67
4.3 循環語句 69
4.3.1 while循環語句 69
4.3.2 do…while循環語句 70
4.3.3 for循環語句 71
4.4 小結 74
4.5 實踐與練習 74
第5章 字元串 75
視頻講解:38分鐘
5.1 String類 76
5.1.1 聲明字元串 76
5.1.2 創建字元串 76
5.2 連線字元串 77
5.2.1 連線多個字元串 78
5.2.2 連線其他數據類型 78
5.3 獲取字元串信息 79
5.3.1 獲取字元串長度 80
5.3.2 字元串查找 80
5.3.3 獲取指定索引位置的字元 81
5.4 字元串操作 82
5.4.1 獲取子字元串 82
5.4.2 去除空格 83
5.4.3 字元串替換 84
5.4.4 判斷字元串的開始與結尾 85
5.4.5 判斷字元串是否相等 86
5.4.6 按字典順序比較兩個字元串 87
5.4.7 字母大小寫轉換 88
5.4.8 字元串分割 89
5.5 格式化字元串 91
5.5.1 日期和時間字元串格式化 91
5.5.2 常規類型格式化 94
5.6 使用正則表達式 95
5.7 字元串生成器 97
5.8 小結 99
5.9 實踐與練習 100
第6章 數組 101
視頻講解:51分鐘
6.1 數組概述 102
6.2 一維數組的創建及使用 102
6.2.1 創建一維數組 102
6.2.2 初始化一維數組 103
6.2.3 使用一維數組 104
6.3 二維數組的創建及使用 104
6.3.1 二維數組的創建 105
6.3.2 二維數組初始化 106
6.3.3 使用二維數組 106
6.4 數組的基本操作 107
6.4.1 遍歷數組 107
6.4.2 填充替換數組元素 108
6.4.3 對數組進行排序 110
6.4.4 複製數組 111
6.4.5 數組查詢 112
6.5 數組排序算法 114
6.5.1 冒泡排序 114
6.5.2 直接選擇排序 116
6.5.3 反轉排序 118
6.6 小結 120
6.7 實踐與練習 121
第7章 類和對象 122
視頻講解:57分鐘
7.1 面向對象概述 123
7.1.1 對象 123
7.1.2 類 124
7.1.3 封裝 125
7.1.4 繼承 125
7.1.5 多態 126
7.2 類 127
7.2.1 成員變數 127
7.2.2 成員方法 128
7.2.3 許可權修飾符 129
7.2.4 局部變數 130
7.2.5 局部變數的有效範圍 130
7.2.6 this關鍵字 131
7.3 類的構造方法 132
7.4 靜態變數、常量和方法 133
7.5 類的主方法 135
7.6 對象 137
7.6.1 對象的創建 137
7.6.2 訪問對象的屬性和行為 138
7.6.3 對象的引用 140
7.6.4 對象的比較 141
7.6.5 對象的銷毀 142
7.7 小結 143
7.8 實踐與練習 143
第8章 包裝類 144
視頻講解:19分鐘
8.1 Integer 145
8.2 Boolean 147
8.3 Byte 149
8.4 Character 150
8.5 Double 151
8.6 Number 153
8.7 小結 153
8.8 實踐與練習 153
第9章 數字處理類 154
視頻講解:21分鐘
9.1 數字格式化 155
9.2 數學運算 157
9.2.1 Math類 158
9.2.2 常用數學運算方法 158
9.3 隨機數 162
9.3.1 Math.random()方法 162
9.3.2 Random類 164
9.4 大數字運算 165
9.4.1 BigInteger 166
9.4.2 BigDecimal 168
9.5 小結 171
9.6 實踐與練習 171
第2篇 核心技術
第10章 接口、繼承與多態 174
視頻講解:36分鐘
10.1 類的繼承 175
10.2 Object類 178
10.3 對象類型的轉換 180
10.3.1 向上轉型 180
10.3.2 向下轉型 181
10.4 使用instanceof操作符判斷
對象類型 182
10.5 方法的重載 184
10.6 多態 187
10.7 抽象類與接口 189
10.7.1 抽象類 189
10.7.2 接口 190
10.8 小結 193
10.9 實踐與練習 193
第11章 類的高級特性 194
視頻講解:29分鐘
11.1 Java類包 195
11.1.1 類名衝突 195
11.1.2 完整的類路徑 195
11.1.3 創建包 196
11.1.4 導入包 197
11.2 final變數 199
11.3 final方法 202
11.4 final類 203
11.5 內部類 204
11.5.1 成員內部類 204
11.5.2 局部內部類 208
11.5.3 匿名內部類 209
11.5.4 靜態內部類 210
11.5.5 內部類的繼承 211
11.6 小結 211
11.7 實踐與練習 211
第12章 異常處理 212
視頻講解:23分鐘
12.1 異常概述 213
12.2 處理程式異常錯誤 213
12.2.1 錯誤 214
12.2.2 捕捉異常 214
12.3 Java常見異常 216
12.4 自定義異常 217
12.5 在方法中拋出異常 218
12.5.1 使用throws關鍵字拋出異常 218
12.5.2 使用throw關鍵字拋出異常 219
12.6 運行時異常 221
12.7 異常的使用原則 221
12.8 小結 222
12.9 實踐與練習 222
第13章 Swing程式設計 223
視頻講解:1小時2分鐘
13.1 Swing概述 224
13.1.1 Swing特點 224
13.1.2 Swing包 224
13.1.3 常用Swing組件概述 225
13.2 常用窗體 225
13.2.1 JFrame窗體 225
13.2.2 JDialog窗體 227
13.3 標籤組件與圖示 229
13.3.1 標籤的使用 229
13.3.2 圖示的使用 230
13.4 常用布局管理器 232
13.4.1 絕對布局 233
13.4.2 流布局管理器 234
13.4.3 邊界布局管理器 235
13.4.4 格線布局管理器 237
13.5 常用面板 238
13.5.1 JPanel面板 238
13.5.2 JScrollPane面板 239
13.6 按鈕組件 240
13.6.1 提交按鈕組件 240
13.6.2 單選按鈕組件 242
13.6.3 複選框組件 243
13.7 列表組件 244
13.7.1 下拉列表框組件 244
13.7.2 列表框組件 246
13.8 文本組件 248
13.8.1 文本框組件 248
13.8.2 密碼框組件 249
13.8.3 文本域組件 249
13.9 常用事件監聽器 250
13.9.1 監聽事件簡介 251
13.9.2 動作事件監聽器 251
13.9.3 焦點事件監聽器 253
13.10 小結 254
13.11 實踐與練習 254
第14章 集合類 255
視頻講解:24分鐘
14.1 集合類概述 256
14.2 Collection接口 256
14.3 List集合 257
14.3.1 List接口 257
14.3.2 List接口的實現類 258
14.4 Set集合 259
14.5 Map集合 261
14.5.1 Map接口 261
14.5.2 Map接口的實現類 262
14.6 小結 264
14.7 實踐與練習 264
第15章 I/O(輸入/輸出) 265
視頻講解:39分鐘
15.1 流概述 266
15.2 輸入/輸出流 266
15.2.1 輸入流 266
15.2.2 輸出流 268
15.3 File類 269
15.3.1 檔案的創建與刪除 269
15.3.2 獲取檔案信息 270
15.4 檔案輸入/輸出流 272
15.4.1 FileInputStream與FileOutputStream類 272
15.4.2 FileReader和FileWriter類 273
15.5 帶快取的輸入/輸出流 275
15.5.1 BufferedInputStream與
BufferedOutputStream類 276
15.5.2 BufferedReader與BufferedWriter類 276
15.6 數據輸入/輸出流 278
15.7 ZIP壓縮輸入/輸出流 279
15.7.1 壓縮檔案 280
15.7.2 解壓縮ZIP檔案 281
15.8 小結 283
15.9 實踐與練習 283
第16章 反射 284
視頻講解:48分鐘
16.1 Class類與Java反射 285
16.1.1 訪問構造方法 286
16.1.2 訪問成員變數 289
16.1.3 訪問方法 291
16.2 使用Annotation功能 294
16.2.1 定義Annotation類型 294
16.2.2 訪問Annotation信息 297
16.3 小結 300
16.4 實踐與練習 300
第17章 枚舉類型與泛型 301
視頻講解:22分鐘
17.1 枚舉類型 302
17.1.1 使用枚舉類型設定常量 302
17.1.2 深入了解枚舉類型 304
17.1.3 使用枚舉類型的優勢 309
17.2 泛型 310
17.2.1 回顧“向上轉型”與“向下轉型” 310
17.2.2 定義泛型類 311
17.2.3 泛型的常規用法 312
17.2.4 泛型的高級用法 316
17.2.5 泛型總結 318
17.3 小結 318
17.4 實踐與練習 318
第18章 多執行緒 319
視頻講解:20分鐘
18.1 執行緒簡介 320
18.2 實現執行緒的兩種方式 320
18.2.1 繼承Thread類 321
18.2.2 實現Runnable接口 322
18.3 執行緒的生命周期 324
18.4 操作執行緒的方法 326
18.4.1 執行緒的休眠 326
18.4.2 執行緒的加入 328
18.4.3 執行緒的中斷 329
18.4.4 執行緒的禮讓 331
18.5 執行緒的優先權 332
18.6 執行緒同步 334
18.6.1 執行緒安全 334
18.6.2 執行緒同步機制 335
18.7 小結 337
18.8 實踐與練習 338
第19章 網路通信 339
視頻講解:24分鐘
19.1 網路程式設計基礎 340
19.1.1 區域網路與網際網路 340
19.1.2 網路協定 340
19.1.3 連線埠和套接字 341
19.2 TCP程式設計基礎 342
19.2.1 InetAddress類 342
19.2.2 ServerSocket類 343
19.2.3 TCP網路程式 344
19.3 UDP程式設計基礎 348
19.3.1 DatagramPacket類 348
19.3.2 DatagramSocket類 349
19.3.3 UDP網路程式 349
19.4 小結 352
19.5 實踐與練習 353
第20章 資料庫操作 354
視頻講解:30分鐘
20.1 資料庫基礎知識 355
20.1.1 什麼是資料庫 355
20.1.2 資料庫的種類及功能 356
20.1.3 SQL語言 356
20.2 JDBC概述 358
20.2.1 JDBC-ODBC橋 358
20.2.2 JDBC技術 359
20.2.3 JDBC驅動程式的類型 359
20.3 JDBC中常用的類和接口 359
20.3.1 Connection接口 360
20.3.2 Statement接口 360
20.3.3 PreparedStatement接口 361
20.3.4 DriverManager類 361
20.3.5 ResultSet接口 361
20.4 資料庫操作 362
20.4.1 連線資料庫 363
20.4.2 向資料庫傳送SQL語句 364
20.4.3 處理查詢結果集 364
20.4.4 順序查詢 365
20.4.5 模糊查詢 366
20.4.6 預處理語句 367
20.4.7 添加、修改、刪除記錄 369
20.5 小結 371
20.6 實踐與練習 371
第3篇 高級套用
第21章 Swing表格組件 374
視頻講解:59分鐘
21.1 利用JTable類直接創建表格 375
21.1.1 創建表格 375
21.1.2 定製表格 377
21.1.3 操縱表格 381
21.2 表格模型與表格 383
21.2.1 利用表格模型創建表格 383
21.2.2 維護表格模型 385
21.3 提供行標題欄的表格 387
21.4 小結 392
21.5 實踐與練習 392
第22章 Swing樹組件 393
視頻講解:1小時4分鐘
22.1 簡單的樹 394
22.2 處理選中節點事件 395
22.3 遍歷樹節點 397
22.4 定製樹 399
22.5 維護樹模型 402
22.6 處理展開節點事件 404
22.7 小結 406
22.8 實踐與練習 406
第23章 Swing其他高級組件 407
視頻講解:1小時35分鐘
23.1 高級組件面板 408
23.1.1 分割面板 408
23.1.2 選項卡面板 411
23.1.3 桌面面板和內部窗體 413
23.2 選單 417
23.2.1 創建選單欄 417
23.2.2 創建彈出式選單 419
23.2.3 定製個性化選單 420
23.3 工具列 424
23.4 檔案選擇器 426
23.4.1 檔案選擇對話框 426
23.4.2 使用檔案過濾器 427
23.5 進度條 428
23.6 系統托盤 430
23.7 桌面集成控制項 431
23.8 小結 432
23.9 實踐與練習 432
第24章 高級布局管理器 433
視頻講解:1小時40分鐘
24.1 箱式布局管理器 434
24.2 卡片布局管理器 436
24.3 格線組布局管理器 439
24.4 彈簧布局管理器 445
24.4.1 使用彈簧布局管理器 445
24.4.2 使用彈簧和支柱 448
24.4.3 利用彈簧控制組件大小 449
24.5 小結 450
24.6 實踐與練習 450
第25章 高級事件處理 451
視頻講解:33分鐘
25.1 鍵盤事件 452
25.2 滑鼠事件 454
25.3 窗體事件 456
25.3.1 捕獲窗體焦點變化事件 456
25.3.2 捕獲窗體狀態變化事件 457
25.3.3 捕獲其他窗體事件 459
25.4 選項事件 461
25.5 表格模型事件 462
25.6 小結 465
25.7 實踐與練習 465
第26章 AWT繪圖與音頻播放 466
視頻講解:34分鐘
26.1 Java繪圖 467
26.1.1 Graphics 467
26.1.2 Graphics2D 467
26.2 繪製圖形 467
26.3 繪圖顏色與筆畫屬性 471
26.3.1 設定顏色 471
26.3.2 筆畫屬性 472
26.4 繪製文本 473
26.4.1 設定字型 474
26.4.2 顯示文字 474
26.5 繪製圖片 475
26.6 圖像處理 477
26.6.1 放大與縮小 477
26.6.2 圖像翻轉 479
26.6.3 圖像旋轉 481
26.6.4 圖像傾斜 482
26.7 播放音頻檔案 484
26.8 小結 486
26.9 實踐與練習 486
第27章 列印技術 487
視頻講解:32分鐘
27.1 列印控制類 488
27.2 “列印”對話框 489
27.3 列印頁面 491
27.4 多頁列印 493
27.5 列印預覽 495
27.6 小結 497
27.7 實踐與練習 497
第4篇 項目實戰
第28章 企業進銷存管理系統 500
視頻講解:1小時37分鐘
28.1 系統分析 501
28.1.1 需求分析 501
28.1.2 可行性分析 501
28.1.3 編寫項目計畫書 502
28.2 系統設計 504
28.2.1 系統目標 504
28.2.2 系統功能結構 504
28.2.3 系統業務流程圖 505
28.2.4 系統編碼規範 506
28.3 開發環境 507
28.4 資料庫與數據表設計 508
28.4.1 資料庫分析 508
28.4.2 創建資料庫 509
28.4.3 創建數據表 510
28.5 創建項目 513
28.6 系統資料夾組織結構 514
28.7 公共類設計 515
28.7.1 Item公共類 515
28.7.2 數據模型公共類 516
28.7.3 Dao公共類 518
28.8 系統登錄模組設計 524
28.8.1 設計登錄窗體 524
28.8.2 “密碼”文本框的回車事件 525
28.8.3 “登錄”按鈕的事件處理 526
28.9 系統主窗體設計 527
28.9.1 設計選單欄 527
28.9.2 設計工具列 530
28.9.3 設計狀態欄 531
28.10 進貨單模組設計 531
28.10.1 設計進貨單窗體 532
28.10.2 添加進貨商品 533
28.10.3 進貨統計 534
28.10.4 商品入庫 536
28.11 銷售單模組設計 538
28.11.1 設計銷售單窗體 538
28.11.2 添加銷售商品 539
28.11.3 銷售統計 540
28.11.4 商品銷售 541
28.12 庫存檔點模組設計 542
28.12.1 設計庫存檔點窗體 542
28.12.2 讀取庫存商品 543
28.12.3 統計損益數量 544
28.13 資料庫備份與恢復模組設計 545
28.13.1 設計窗體 545
28.13.2 檔案瀏覽 546
28.13.3 備份資料庫 547
28.13.4 恢複數據庫 548
28.14 運行項目 549
28.15 系統打包發行 551
28.16 開發常見問題與解決 553
28.16.1 資料庫無法訪問 553
28.16.2 打包的JAR檔案無法登錄 554
28.16.3 資料庫還原不成功 555
28.16.4 資料庫唯讀 555
28.16.5 無法打開內部窗體 555
28.16.6 “關於”界面被其他窗體覆蓋 556
28.16.7 打包JAR檔案之後無法運行 556
28.16.8 程式運行後沒有出現閃屏界面 556
28.17 小結 557
附錄A JDK 7改進的功能 558
A.1 語法 558
A.1.1 switch語句允許使用字元串 558
A.1.2 整型數據支持二進制形式 559
A.1.3 數值型數據中可以出現下劃線 559
A.1.4 泛型實例的創建可以通過類型
推斷來簡化 559
A.1.5 try-with-resources語句 560
A.1.6 改進了捕獲多個異常時的類型檢查 560
A.1.7 在可變參數方法中傳遞非具體化參數
時,改進編譯警告和錯誤 561
A.2 網路 562
A.3 Java2D 562
A.4 Swing 563
A.5 JavaI/O 563
A.6 並發 563
A.7 安全性 563
A.8 JavaXML 564
A.9 Java虛擬器(JVM) 564