內容提要
《從零開始學Java(第3版)》針對初學和自學讀者的特點,以通俗易懂的語言講解Java 語言編程。《從零開始學Java(第3版)》內容分為六篇共23章,講解了Java的各個方面,主要內容包括Java 語言的環境配置、基本語法、流程控制語句、字元串處理、數組、面向對象、圖形界面設計、輸入/輸出、異常處理、網路編程、資料庫及Java Web基礎JSP 和Servlet。最後通過一個大型項目——教務管理系統貫穿所有所學知識點,讓讀者更好地掌握Java 語言編程開發。
《從零開始學Java(第3版)》包含大量實例,讓讀者在實戰中體會編程的快樂。為方便讀者學習,《從零開始學Java(第3版)》附帶大容量資源包,其中包含書中用到的所有實例代碼、配套PPT 教案及視頻教程。建議讀者邊學邊練,可快速提高單獨開發項目的能力。《從零開始學Java(第3版)》適合想從事軟體開發的入門人員、Java 自學者及初級軟體程式設計師與信息技術人員閱讀。
目錄
第一篇 Java 基礎
第1 章 第一個Java 程式——HelloWorld ( 教學視頻:14 分鐘) 1
1.1 Java 語言簡介 1
1.1.1 Java 語言的歷史 1
1.1.2 Java 語言的優點 2
1.1.3 發展前景 2
1.2 工作原理 3
1.2.1 Java 虛擬機(JVM) 3
1.2.2 無用記憶體自動回收機制 4
1.2.3 代碼安全性檢查機制 4
1.3 搭建Java 程式開發環境 4
1.3.1 系統要求 4
1.3.2 下載Java 程式開發工具包JDK4
1.3.3 安裝JDK5
1.3.4 在Windows 系統下配置JDK7
1.4 開發第一個Java 應用程式 9
1.4.1 Eclipse 編寫HelloWorld9
1.4.2 源檔案與命令行執行HelloWorld12
1.4.3 Java 應用程式的基本結構 14
1.5 典型實例 14
第2 章 Java 變數、數據類型、運算符( 教學視頻:20 分鐘) 15
2.1 標識符和關鍵字 15
2.1.1 標識符 15
2.1.2 標識符命名規則 15
2.1.3 關鍵字 15
2.2 常量與變數 16
2.2.1 常量概念及聲明 16
2.2.2 枚舉類型 16
2.2.3 變數概念及聲明 17
2.2.4 變數的作用域 18
2.3 基本數據類型 19
2.3.1 整型 19
2.3.2 浮點型 20
2.3.3 布爾型 20
2.3.4 字元型 20
2.3.5 數據類型轉換 21
2.4 運算符 22
2.4.1 算術運算符 23
2.4.2 賦值運算符 23
2.4.3 關係運算符 24
2.4.4 邏輯運算符 24
2.4.5 位運算符 25
2.4.6 自增自減運算符 27
2.4.7 三元運算符 28
2.4.8 運算符的優先權 28
2.5 典型實例 29
第3 章 數組( 教學視頻:25 分鐘) 34
3.1 數組的概念 34
3.1.1 什麼是數組 34
3.1.2 數組的特點 34
3.1.3 數組的規則 34
3.2 一維數組 35
3.2.1 聲明一維數組 35
3.2.2 初始化一維數組 35
3.2.3 訪問一維數組 36
3.2.4 修改一維數組元素 36
3.3 數組的常用操作 37
3.3.1 數組長度 37
3.3.2 數組填充 37
3.3.3 數組複製 38
3.3.4 數組比較 38
3.3.5 數組排序 39
3.3.6 在數組中搜尋指定元素 40
3.3.7 把數組轉換為字元串 40
3.4 多維數組 41
3.4.1 聲明二維數組 41
3.4.2 創建二維數組 41
3.4.3 訪問二維數組 42
3.4.4 遍歷二維數組 42
3.5 典型實例 43
第4 章 條件結構和循環結構
( 教學視頻:23 分鐘) 51
4.1 條件結構 51
4.1.1 if 語句 51
4.1.2 if-else 語句 52
4.1.3 if-else-if 語句 53
4.1.4 選擇語句的嵌套 54
4.1.5 switch 語句 55
4.1.6 if 與switch 的區別 56
4.2 循環結構 56
4.2.1 while 循環語句 56
4.2.2 do-while 循環語句 57
4.2.3 while 與do-while 的區別 58
4.2.4 for 循環語句 59
4.2.5 嵌套循環語句 60
4.3 跳轉語句 62
4.3.1 break 跳轉語句 62
4.3.2 continue 跳轉語句 62
4.3.3 break 與continue 的區別 63
4.3.4 return 跳轉語句 64
4.4 典型實例 64
第5 章 字元串處理( 教學視頻:25 分鐘) 70
5.1 字元 70
5.2 字元串 71
5.2.1 字元串聲明與賦值 71
5.2.2 獲取字元串長度 72
5.3 字元串基本操作 72
5.3.1 字元串連線 72
5.3.2 字元串比較 73
5.3.3 字元串截取 74
5.3.4 字元串查找 74
5.3.5 字元串替換 75
5.3.6 字元串與字元數組 75
5.3.7 字元串其他常用操作 76
5.4 StringBuffer 類 77
5.4.1 認識StringBuffer 類 77
5.4.2 StringBuffer 類提供的操作方法 77
5.4.3 StringBuffer 實例 77
5.4.4 String 類與StringBuffer 類對比 78
5.5 典型實例 78
第二篇 Java 面向對象
第6 章 面向對象( 教學視頻:30 分鐘) 82
6.1 面向對象編程簡介 82
6.1.1 類 82
6.1.2 對象 82
6.1.3 繼承 83
6.1.4 接口 84
6.1.5 包 84
6.2 類 84
6.2.1 基本結構 84
6.2.2 類變數 86
6.2.3 類方法 86
6.2.4 類方法命名 87
6.2.5 調用類方法 87
6.2.6 方法重載 88
6.2.7 構造方法 88
6.2.8 方法返回值 89
6.3 抽象類和抽象方法 89
6.3.1 抽象類 89
6.3.2 抽象類實例 89
6.3.3 抽象類的類成員 90
6.3.4 抽象方法 91
6.3.5 抽象類與接口對比 91
6.4 嵌套類 91
6.4.1 嵌套類定義 91
6.4.2 內部類 92
6.4.3 靜態嵌套類 92
6.5 對象 92
6.5.1 對象實例 92
6.5.2 創建對象 94
6.5.3 使用對象 96
6.6 this、static、final 關鍵字 96
6.6.1 this 關鍵字 96
6.6.2 static 關鍵字 97
6.6.3 final 關鍵字 97
6.7 控制對類的成員的訪問 97
6.8 標註 98
6.8.1 標註用法 98
6.8.2 文檔標註 98
6.9 典型實例 99
第7 章 繼承( 教學視頻:20 分鐘) 104
7.1 繼承概述 104
7.1.1 什麼是繼承 104
7.1.2 類的層次 105
7.1.3 繼承示例 105
7.1.4 繼承優點 106
7.2 對象類型轉換 106
7.2.1 隱式對象類型轉換 106
7.2.2 強制對象類型轉換 107
7.2.3 使用instanceof 運算符 107
7.3 重寫和隱藏父類方法 107
7.3.1 重寫父類中的方法 108
7.3.2 隱藏父類中的方法 108
7.3.3 方法重寫和方法隱藏後的修飾符109
7.3.4 總結 109
7.4 隱藏父類中的欄位 110
7.5 子類訪問父類成員 111
7.5.1 子類訪問父類私有成員 111
7.5.2 使用super 調用父類中重寫的方法 112
7.5.3 使用super 訪問父類中被隱藏的欄位 112
7.5.4 使用super 調用父類的無參構造方法 113
7.5.5 使用super 調用父類的帶參構造方法 114
7.5.6 構造方法鏈 115
7.6 Object 類 116
7.7 典型實例 116
第8 章 接口和包( 教學視頻:16 分鐘) 121
8.1 接口的概念 121
8.1.1 為什麼使用接口 121
8.1.2 Java 中的接口 121
8.1.3 作為API 的接口 122
8.1.4 接口和多繼承 122
8.1.5 Java 接口與Java 抽象類的區別 122
8.2 定義接口 123
8.2.1 聲明接口 123
8.2.2 接口體 124
8.3 實現接口 124
8.3.1 接口的實現 124
8.3.2 接口示例 125
8.3.3 接口的繼承 125
8.3.4 實現多個接口時的常量和方法衝突問題 125
8.4 包 127
8.4.1 包的概念 127
8.4.2 創建包 127
8.4.3 包命名慣例 127
8.4.4 導入包 128
8.5 典型實例 128
第9 章 集合( 教學視頻:17 分鐘) 133
9.1 Java 集合框架 133
9.2 Collection 接口 133
9.2.1 轉換構造方法 133
9.2.2 Collection 接口的定義 133
9.2.3 Collection 接口的基本操作 134
9.2.4 遍歷Collection 接口 134
9.2.5 Collection 接口的批量操作 135
9.2.6 Collection 接口的數組操作 135
9.3 Set 接口 136
9.3.1 Set 接口的定義 136
9.3.2 Set 接口的基本操作 137
9.3.3 Set 接口的批量操作 138
9.3.4 Set 接口的數組操作 139
9.4 List 接口 139
9.4.1 List 接口的定義 139
9.4.2 從Collection 繼承的操作 139
9.4.3 按位置訪問和查找操作 140
9.4.4 List 疊代方法 141
9.5 Map 接口 142
9.5.1 Map 接口的定義 142
9.5.2 Map 接口的基本操作 143
9.5.3 Map 接口的批量操作 144
9.6 實現 144
9.6.1 實現的類型 144
9.6.2 Set 接口的實現 145
9.6.3 List 接口的實現 146
9.6.4 Map 接口的實現 146
9.7 典型實例 147
第三篇 Swing
第10 章 第一個圖形界面應用程式( 教學視頻:12 分鐘) 157
10.1 Swing 簡介 157
10.1.1 Swing157
10.1.2 Swing 特點 157
10.2 創建第一個圖形界面程式 158
10.3 Swing 頂層容器 159
10.3.1 Swing 中的頂層容器類 159
10.3.2 容器層 161
10.3.3 組件使用 161
10.3.4 添加選單欄 162
10.3.5 根面板 162
10.4 JFrame 類創建圖形界面窗體 162
10.4.1 創建窗體 162
10.4.2 創建窗體示例 163
10.4.3 設定視窗 164
10.4.4 視窗關閉事件 165
10.4.5 窗體API166
10.5 典型實例 167
第11 章 Swing 組件( 教學視頻:24 分鐘) 171
11.1 JComponent 類 171
11.2 常用基本組件 172
11.2.1 按鈕組件JButton172
11.2.2 複選框組件JCheckBox172
11.2.3 單選按鈕組件JRadioButton173
11.2.4 文本框組件JTextField173
11.2.5 密碼框組件JPasswordField173
11.2.6 組合框組件JComboBox173
11.2.7 滑塊組件JSlider174
11.2.8 微調組制組件JSpinner174
11.2.9 選單組件JMenu174
11.3 不可編輯的信息顯示組件 175
11.3.1 標籤組件JLabel175
11.3.2 進度條組件JProgressBar175
11.3.3 工具提示組件JToolTip175
11.4 Swing 高級組件 176
11.4.1 顏色選擇器JColorChooser176
11.4.2 檔案選擇器JFileChooser176
11.4.3 文本編輯組件JEditorPane 和JTextPane177
11.4.4 文本區組件JTextArea178
11.4.5 表組件JTable178
11.4.6 樹組件JTree179
11.4.7 面板組件JPanel180
11.4.8 滾動面板JScrollPane180
11.4.9 分割面板JSplitPane181
11.4.10 選項卡面板JTabbedPane181
11.4.11 工具列JToolBar182
11.5 典型實例 182
第12 章 標準布局( 教學視頻:18 分鐘) 189
12.1 標準布局管理器簡介 189
12.1.1 BorderLayout 框線布局 189
12.1.2 BoxLayout 布局 189
12.1.3 CardLayout 卡片布局 190
12.1.4 FlowLayout 流動布局 191
12.1.5 GridLayout 格線布局 191
12.1.6 GridBagLayout 格線包布局 191
12.2 布局管理器的使用 192
12.2.1 使用BorderLayout192
12.2.2 使用BoxLayout193
12.2.3 使用CardLayout193
12.2.4 使用FlowLayout194
12.2.5 使用GridLayout194
12.2.6 使用GridbagLayout194
12.3 使用布局管理器技巧 195
12.3.1 設定布局管理器 195
12.3.2 向容器中添加組件 196
12.3.3 提供組件大小和排列策略 196
12.3.4 設定組件之間的間隙 196
12.3.5 設定容器的語言方向 196
12.3.6 選擇布局管理器 197
12.4 典型實例 198
第13 章 事件處理( 教學視頻:13 分鐘) 205
13.1 事件處理原理 205
13.1.1 事件處理模型 205
13.1.2 事件類型 206
13.1.3 監聽器類型 207
13.2 動作事件 208
13.2.1 動作事件步驟 208
13.2.2 動作事件過程 208
13.2.3 按鈕觸發動作事件 209
13.2.4 文本框觸發事件 210
13.3 選項事件 211
13.3.1 選項事件步驟 211
13.3.2 選項事件過程 212
13.4 列表選擇事件 212
13.4.1 列表事件步驟 212
13.4.2 列表事件過程 212
13.5 焦點事件 213
13.5.1 焦點事件步驟 213
13.5.2 焦點事件過程 213
13.6 鍵盤事件 214
13.6.1 鍵盤事件步驟 214
13.6.2 處理鍵盤過程 214
13.7 滑鼠事件 215
13.7.1 滑鼠事件步驟 215
13.7.2 滑鼠事件過程 215
13.8 滑鼠移動事件 216
13.8.1 滑鼠移動事件步驟 216
13.8.2 滑鼠移動事件過程 216
13.9 典型實例 217
第四篇 Java 編程技術
第14 章 異常處理( 教學視頻:16 分鐘) 223
14.1 Java 異常 223
14.1.1 編譯錯誤 223
14.1.2 運行錯誤 223
14.1.3 邏輯錯誤 224
14.1.4 異常處理機制 225
14.1.5 異常處理類 225
14.1.6 異常處理原則 227
14.2 處理異常 227
14.2.1 try-catch 語句 228
14.2.2 多個catch 子句 228
14.2.3 finally 子句 229
14.2.4 可嵌入的try 塊 229
14.3 拋出異常 230
14.3.1 使用throws 拋出異常 230
14.3.2 使用throw 拋出異常 231
14.3.3 異常類常用方法 232
14.4 自定義異常 232
14.4.1 創建自定義異常類 232
14.4.2 處理自定義異常 232
14.5 典型實例 233
第15 章 輸入與輸出( 教學視頻:14 分鐘) 235
15.1 流 235
15.1.1 流的概念 235
15.1.2 輸入流與輸出流 236
15.1.3 位元組流與字元流 237
15.2 位元組流 237
15.2.1 InputStream 類與OutputStream 類 237
15.2.2 FileInputStream 類與FileOutputStream 類 238
15.2.3 BufferedInputStream 類與BufferedOutputStream 類 239
15.3 字元流 240
15.3.1 Reader 類和Writer 類 240
15.3.2 FileReader 類和FileWriter 類 240
15.3.3 BufferedReader 類和BufferedWriter 類 242
15.3.4 PrintStream 類和PrintWriter 類 243
15.4 實現用戶輸入 243
15.4.1 使用System.in 獲取用戶輸入 243
15.4.2 使用Scanner 類獲取用戶輸入 244
15.5 典型實例 244
第16 章 執行緒( 教學視頻:18 分鐘) 251
16.1 執行緒概念 251
16.1.1 執行緒的屬性 251
16.1.2 執行緒的組成 252
16.1.3 執行緒的工作原理 252
16.1.4 執行緒的狀態 253
16.1.5 執行緒的優先權 253
16.1.6 進程的概念 253
16.1.7 執行緒和進程的區別 254
16.2 執行緒對象 254
16.2.1 執行緒對象和執行緒的區別 254
16.2.2 定義並啟動一個執行緒 255
16.2.3 使用Sleep 暫停執行緒執行 255
16.2.4 中斷執行緒 256
16.2.5 join 方法 256
16.2.6 死鎖 257
16.3 執行緒同步 257
16.3.1 同步方法 257
16.3.2 固定鎖和同步 258
16.4 典型實例 259
第17 章 網路編程( 教學視頻:8 分鐘) 262
17.1 網路編程基礎 262
17.1.1 什麼是TCP 協定 262
17.1.2 什麼是IP 協定 262
17.1.3 什麼是TCP/IP263
17.1.4 什麼是UDP 協定 263
17.1.5 什麼是連線埠 263
17.1.6 什麼是套接字 263
17.1.7 java.net 包 263
17.2 InetAddress 類 264
17.3 URL 網路編程 265
17.3.1 URL265
17.3.2 標識符語法 266
17.3.3 URLConnection 類 266
17.4 TCP 的網路編程 267
17.4.1 Socket267
17.4.2 重要的Socket API268
17.4.3 伺服器端程式設計 268
17.4.4 客戶端程式設計 270
17.5 UDP 網路編程 270
17.5.1 UDP 通信概念 270
17.5.2 UDP 的特性 271
17.5.3 UDP 的套用 272
17.5.4 UDP 與TCP 的區別 272
17.6 典型實例 272
第18 章 資料庫應用程式開發基礎( 教學視頻:22 分鐘) 277
18.1 資料庫 277
18.1.1 資料庫簡介 277
18.1.2 資料庫中數據的性質 277
18.1.3 資料庫的特點 278
18.2 JDBC 概述 278
18.2.1 JDBC 介紹 279
18.2.2 JDBC 的4 種驅動程式 280
18.2.3 JDBC 對B/S 和C/S 模式的支持 281
18.3 java.sql 包 281
18.4 SQL 語句 282
18.4.1 SQL 語句的分類 282
18.4.2 SELECT 語句 282
18.4.3 INSERT 語句 282
18.4.4 UPDATE 語句 283
18.4.5 DELETE 語句 283
18.4.6 CREATE 語句 283
18.4.7 DROP 語句 283
18.5 典型實例 283
第19 章 使用Swing 組件創建資料庫應用程式( 教學視頻:10 分鐘) 286
19.1 JComboBox 組件創建資料庫應用程式 286
19.1.1 創建JComboBox286
19.1.2 DefaultComboBoxModel創建JComboBox288
19.2 JList 組件創建資料庫應用程式 289
19.2.1 DefaultListModel 創建JList289
19.2.2 ListModel 創建JList290
19.3 JTable 組件創建資料庫應用程式 291
19.3.1 JTable 相關的類 291
19.3.2 DefaultTableModel創建JTable292
19.4 典型實例 293
第五篇 Java Web 基礎
第20 章 JSP( 教學視頻:25 分鐘) 297
20.1 JSP 簡介 297
20.1.1 MVC 模式 297
20.1.2 JSP 技術的優點 298
20.2 基本語法 298
20.2.1 注釋 298
20.2.2 JSP 指令 299
20.3 JSP 腳本元素 302
20.3.1 JSP 聲明 302
20.3.2 JSP 表達式 302
20.4 JSP 動作 303
20.4.1 include 動作元素 303
20.4.2 forword 動作元素 304
20.4.3 plugin 動作元素 304
20.4.4 param 動作元素 305
20.4.5 useBean 及setProperty 和getProperty 動作元素 305
20.5 JSP 內置對象 307
20.5.1 request 對象 308
20.5.2 response 對象 309
20.5.3 session 對象 309
20.5.4 application 對象 310
20.5.5 out 對象 311
20.5.6 config 對象 312
20.5.7 exception 對象 313
20.5.8 pageContext 對象 313
20.6 典型實例 314
第21 章 Servlet( 教學視頻:23 分鐘) 318
21.1 Servlet 簡介 318
21.1.1 什麼是Servlet318
21.1.2 Servlet 的生命周期 318
21.1.3 Servlet 的基本結構 319
21.2 HTTPServlet套用編程接口 319
21.2.1 init()方法 320
21.2.2 service()方法 320
21.2.3 doGet()方法 320
21.2.4 doPost()方法 320
21.2.5 destroy()方法 320
21.2.6 GetServletConfig()方法 321
21.2.7 GetServletInfo()方法 321
21.3 創建HttpServlet321
21.4 調用HttpServlet322
21.4.1 由URL 調用Servlet322
21.4.2 在<FORM>標記中指定Servlet323
21.4.3 在<SERVLET>標記中指定Servlet323
21.4.4 在ASP 檔案中調用Servlet324
21.5 Servlet 之間的跳轉 324
21.5.1 轉向(Forward) 324
21.5.2 重定向(Redirect) 325
21.6 典型實例 326
第六篇 Java 實戰
第22 章 案例:教務管理系統(一) 330
22.1 總體設計與概要說明 330
22.1.1 功能模組劃分 330
22.1.2 功能模組說明 330
22.2 業務流程圖 331
22.2.1 登錄模組流程 331
22.2.2 班主任管理模組流程 332
22.2.3 教務主任管理模組 332
22.2.4 人事管理模組 332
22.3 資料庫設計 333
22.3.1 資料庫需求分析 333
22.3.2 資料庫概念結構設計 333
22.3.3 資料庫邏輯結構設計 335
22.3.4 資料庫結構的實現 338
第23 章 案例:教務管理系統(二) 340
23.1 應用程式實現 340
23.2 實現登錄模組 341
23.3 管理界面介紹 342
23.4 實現修改密碼模組 344
23.4.1 jbInit()方法 346
23.4.2 修改用戶許可權 347
23.4.3 修改用戶密碼 347
23.5 實現“關於”對話框 348
23.6 實現人事管理模組 349
23.6.1 退出系統管理 351
23.6.2 創建組件及處理事件 353
23.6.3 動態顯示登錄者相關信息 355
23.6.4 員工個人信息的查詢 357
23.6.5 事件處理方法回調 357
23.7 實現TeacherInfoBean信息封裝類 359
23.8 實現DepartmentAction、
TeacherAction 業務處理類 360
23.8.1 實現DepartmentAction 類 360
23.8.2 實現TeacherAction 類 361
23.9 軟體部署 365
23.9.1 組織程式所需資源 365
23.9.2 運行和測試程式 366
23.10 項目總結 366