內容簡介
本書以最新長期支持穩定版本Java為基礎,對第3版進行了升級;除保留了原版內容的循序漸進、深入淺出等諸多優點外,精心設計每個實例,囊括了Java的最新語言特性;增強了Java資料庫編程部分的內容,涉及操作最新MySQL、SQL Server、Oracle等多種最新主流資料庫的關鍵技術。 本書由Java實用教程、實驗、習題集這三個部分組成。第1部分:一般在介紹內容後緊跟相關的實例演示,在第2、4、7、9~12、14、15章章尾配有綜合實例,以提高讀者綜合套用已學過的主要知識的能力。第2部分:首先通過實例引導讀者學習,然後提出思考問題,最後在原有基礎上讓讀者自己進行操作和編程練習。第3部分:本版系統地擴充了習題的內容,對應於主要知識點,對所有習題均結合書中重要知識點進行了精心設計;通過掃描書中的二維碼可得到配套答案,幫助讀者在鞏固所學知識的同時提高能力。 本書以最新版Eclipse作為Java的集成開發環境,該版本與各版JDK的兼容性較好,能將用戶以舊版JDK開發的Java項目自動轉換成新版項目,其編寫、調試、運行Java程式都十分方便。本書所有實例均在最新版Eclipse下調試通過,實例運行結果以抓圖形式提供。
與本書配套的同步電子課件,可直接用於課堂教學。本書對每個重要知識點均提供通過二維碼播放的配套視頻教學,既可以作為課後教學輔助,也可作為課程自學。 本書既可作為大學本科和專科計算機及相關專業的教材,也可作為Java自學者或套用開發者的參考書。
目錄
第1部分 Java實用教程
第1章 Java語言及編程環境 1
1.1 Java語言簡介 1
1.1.1 Java語言特點 1
1.1.2 Java運行機制 2
1.1.3 從Java 5到Java 11 3
1.2 Java編程環境 4
1.2.1 JDK 11 4
1.2.2 Eclipse集成開發環境 6
第2章 Java語法基礎 19
2.1 常量和變數 19
2.1.1 數據類型 19
2.1.2 標識符和關鍵字 19
2.1.3 常量 20
2.1.4 變數 22
2.1.5 類型轉換 23
2.2 運算符和表達式 25
2.2.1 運算符 25
2.2.2 表達式 30
2.3 流程控制 30
2.3.1 分支語句 30
2.3.2 循環語句 33
2.3.3 流程跳轉語句 36
2.4 數組 37
2.4.1 一維數組 37
2.4.2 多維數組 39
2.4.3 數組的訪問 42
2.5 綜合實例 44
第3章 Java類與對象 47
3.1 Java語言的類 47
3.1.1 面向對象程式設計概念 47
3.1.2 類的定義 48
3.1.3 變數初始化 49
3.1.4 類的方法 51
3.2 創建對象 55
3.2.1 構造方法 55
3.2.2 默認構造方法 57
3.2.3 構造方法重載 58
3.3 this引用 59
3.4 靜態成員 61
3.4.1 靜態變數 61
3.4.2 靜態方法 62
3.4.3 main()方法 63
3.4.4 靜態代碼塊 65
3.5 內部類 65
3.5.1 實例內部類 66
3.5.2 匿名內部類 68
3.5.3 static內部類 69
3.5.4 局部內部類 70
3.6 類的打包或封裝 70
3.6.1 包(package)機制 70
3.6.2 創建JAR檔案 74
第4章 Java面向對象編程 76
4.1 繼承 76
4.1.1 繼承的定義 76
4.1.2 初始化基類 77
4.1.3 方法的重寫 78
4.1.4 super關鍵字 80
4.2 多態 81
4.2.1 對象的類型轉換 81
4.2.2 多態的實現 84
4.3 抽象類和接口 86
4.3.1 抽象方法與抽象類 86
4.3.2 接口概念及特性 87
4.4 終止繼承 89
4.4.1 final類 90
4.4.2 final方法 90
4.4.3 final變數 91
4.5 修飾符的適用範圍 93
4.5.1 修飾符及訪問許可權 93
4.5.2 類內部 93
4.5.3 同一個包的類 94
4.5.4 不同包的子類 95
4.5.5 任意類 96
4.5.6 繼承規則 97
4.6 Java編程規範 97
4.6.1 代碼書寫規範 97
4.6.2 文檔的使用 98
4.7 綜合實例:航班管理 99
4.7.1 需求分析 99
4.7.2 程式設計 100
4.7.3 文檔編制 109
第5章 Java常用類 111
5.1 Object類 111
5.1.1 equals()方法 111
5.1.2 hashCode()方法 112
5.1.3 toString()方法 113
5.2 字元串類 114
5.2.1 String類 114
5.2.2 StringBuffer類 118
5.3 包裝類 119
5.4 Math類 121
5.5 Random類 122
5.6 日期時間類 123
5.6.1 新日期時間包 123
5.6.2 日曆套用 124
5.7 正則表達式 125
5.7.1 基礎知識 125
5.7.2 正則表達式的套用 128
5.8 數組實用類 131
5.8.1 複製數組 131
5.8.2 數組排序 132
5.8.3 數組元素的查找 133
第6章 Java語言新特性 135
6.1 枚舉 135
6.1.1 定義枚舉類型 135
6.1.2 enum構造方法 136
6.1.3 使用EnumMap 137
6.2 註解 138
6.2.1 內置註解 138
6.2.2 自定義註解 142
6.2.3 元註解 142
6.3 lambda表達式 145
6.3.1 lambda表達式簡介 145
6.3.2 函式式接口 146
6.3.3 lambda表達式與匿名
內部類 147
6.3.4 方法引用 149
第7章 容器和泛型 150
7.1 Collection與Iterator接口 150
7.2 Collections實用類 152
7.3 Set(集合) 153
7.3.1 HashSet類 153
7.3.2 TreeSet類 155
7.4 List(列表) 158
7.4.1 ArrayList類 158
7.4.2 LinkedList類 161
7.4.3 棧的實現 162
7.5 Queue(佇列) 163
7.5.1 LinkedList類實現 163
7.5.2 PriorityQueue類 163
7.5.3 雙向佇列 165
7.6 Map(映射) 166
7.6.1 HashMap 166
7.6.2 TreeMap 167
7.7 泛型 169
7.7.1 泛型的基本概念 169
7.7.2 泛型方法 171
7.7.3 受限泛型 173
7.7.4 通配符與受限通配符 174
7.7.5 子類泛型 175
7.7.6 泛型數組 177
7.8 Java增強容器特性 178
7.9 綜合實例 180
第8章 異常處理 183
8.1 異常概述 183
8.2 異常處理機制 184
8.2.1 異常的捕獲與處理 184
8.2.2 聲明拋出異常子句 186
8.2.3 拋出異常 186
8.3 自定義異常類 187
第9章 Java輸入/輸出系統 190
9.1 位元組流 190
9.1.1 位元組數組輸入流 191
9.1.2 位元組數組輸出流 192
9.1.3 檔案輸入流 192
9.1.4 檔案輸出流 193
9.1.5 管道流 194
9.2 過濾流 195
9.2.1 緩衝流類 196
9.2.2 數據流類 197
9.2.3 PrintStream類 199
9.3 字元流 200
9.3.1 轉換流類 201
9.3.2 FileReader和FileWriter類 202
9.3.3 BufferedReader和
BufferedWriter類 203
9.3.4 PrintWriter類 204
9.4 標準I/O 205
9.4.1 重新包裝標準I/O 206
9.4.2 標準I/O流重定向 206
9.5 隨機訪問檔案類 207
9.6 對象序列化 210
9.7 File類 211
9.8 綜合實例 213
第10章 多執行緒 215
10.1 執行緒的創建與啟動 215
10.1.1 繼承java.lang.Thread類 215
10.1.2 實現Runnable接口 217
10.2 執行緒的狀態轉換 218
10.3 執行緒調度 219
10.3.1 調整執行緒優先權 219
10.3.2 執行緒讓步 220
10.3.3 合併執行緒 221
10.4 後台執行緒 222
10.5 執行緒互斥 223
10.5.1 臨界區 223
10.5.2 對象鎖機制 225
10.5.3 顯式Lock對象 228
10.6 執行緒同步 230
10.7 綜合實例 233
第11章 AWT圖形用戶界面編程 238
11.1 AWT容器 238
11.1.1 Window和Frame 239
11.1.2 Panel 239
11.2 布局管理器 241
11.3 事件處理機制 243
11.3.1 AWT事件與監聽器 243
11.3.2 視窗事件 244
11.3.3 滑鼠事件 246
11.3.4 鍵盤事件 247
11.3.5 內部類實現監聽器接口 249
11.3.6 類自身實現監聽器接口 250
11.3.7 外部類實現監聽器接口 251
11.3.8 採用事件適配器 253
11.4 在AWT中繪圖 255
11.4.1 Graphics類 255
11.4.2 AWT繪圖實現原理 257
11.5 綜合實例 259
第12章 Swing組件及套用 264
12.1 視窗(JFrame) 264
12.2 Swing基本組件 265
12.2.1 按鈕(JButton) 265
12.2.2 文本框(JTextField) 267
12.2.3 複選框(JCheckBox)和
單選按鈕(JRadioButton) 269
12.2.4 列表框(JList) 272
12.3 Swing選單程式設計 274
12.3.1 選單條(JMenuBar) 274
12.3.2 彈出式選單
(JPopupMenu) 277
12.3.3 頁簽面板(JTabbedPane) 279
12.3.4 工具列(JToolBar) 281
12.4 Swing數據管理組件 283
12.4.1 表格(JTable) 284
12.4.2 樹狀視圖(JTree) 286
12.5 Swing標準對話框 287
12.5.1 對話框(JDialog) 287
12.5.2 訊息框(JOptionPane) 289
12.5.3 檔案對話框
(JFileChooser) 291
12.6 綜合實例 293
第13章 Java基礎開發綜合實習 297
13.1 設計思路 297
13.2 漢諾塔上盤子模擬 297
13.3 對象定位及盤子的存放 298
13.4 創建漢諾塔及實現手工搬運盤子 299
13.5 自動搬運盤子 305
第14章 Java網路編程 312
14.1 網路程式設計基礎 312
14.1.1 TCP與UDP 312
14.1.2 連線埠和套接字 312
14.2 TCP網路編程 313
14.2.1 TCP通信模型 313
14.2.2 Socket編程相關類 313
14.2.3 TCP通信程式 316
14.3 UDP網路編程 319
14.3.1 UDP相關類 319
14.3.2 UDP通信程式 321
14.3.3 組播 324
14.4 URL網路編程 327
14.4.1 URL類 327
14.4.2 URLConnetction類 329
14.5 綜合實例 331
第15章 Java資料庫編程 336
15.1 SQL語言簡介 336
15.2 JDBC原理 337
15.3 訪問資料庫 339
15.3.1 載入並註冊資料庫驅動 339
15.3.2 建立到資料庫的連線 340
15.3.3 執行資料庫操作 341
15.4 JDBC操作MySQL 342
15.4.1 獲取和載入驅動 342
15.4.2 創建資料庫和表 345
15.4.3 運算元據庫 347
15.4.4 事務處理 349
15.4.5 存儲過程 351
15.5 JDBC操作其他資料庫 353
15.5.1 JDBC操作SQL Server 354
15.5.2 JDBC操作Oracle 355
15.6 綜合實例 356
第2部分 實 驗
實驗1 Java語言及編程環境 362
實驗2 Java語法基礎 363
實驗3 Java類與對象 365
實驗4 Java面向對象編程 368
實驗5 Java常用類 371
實驗6 Java語言新特性 373
實驗7 容器和泛型 374
實驗8 Java異常處理 377
實驗9 Java輸入/輸出系統 378
實驗10 多執行緒 379
實驗11 AWT圖形用戶界面編程 380
實驗12 Swing組件及套用 383
實驗13 Java網路編程 386
實驗14 Java資料庫編程 392
第3部分 習 題 集
第1章 Java語言及編程環境 399
第2章 Java語法基礎 399
第3章 Java類與對象 402
第4章 Java面向對象編程 402
第5章 Java常用類 403
第6章 Java語言新特性 403
第7章 容器和泛型 403
第8章 異常處理 404
第9章 Java輸入/輸出系統 404
第10章 多執行緒 404
第11章 AWT圖形用戶界面編程 405
第12章 Swing組件及套用 405
第14章 Java網路編程 405
第15章 Java資料庫編程 406,
第1部分 Java實用教程
第1章 Java語言及編程環境 1
1.1 Java語言簡介 1
1.1.1 Java語言特點 1
1.1.2 Java運行機制 2
1.1.3 從Java 5到Java 11 3
1.2 Java編程環境 4
1.2.1 JDK 11 4
1.2.2 Eclipse集成開發環境 6
第2章 Java語法基礎 19
2.1 常量和變數 19
2.1.1 數據類型 19
2.1.2 標識符和關鍵字 19
2.1.3 常量 20
2.1.4 變數 22
2.1.5 類型轉換 23
2.2 運算符和表達式 25
2.2.1 運算符 25
2.2.2 表達式 30
2.3 流程控制 30
2.3.1 分支語句 30
2.3.2 循環語句 33
2.3.3 流程跳轉語句 36
2.4 數組 37
2.4.1 一維數組 37
2.4.2 多維數組 39
2.4.3 數組的訪問 42
2.5 綜合實例 44
第3章 Java類與對象 47
3.1 Java語言的類 47
3.1.1 面向對象程式設計概念 47
3.1.2 類的定義 48
3.1.3 變數初始化 49
3.1.4 類的方法 51
3.2 創建對象 55
3.2.1 構造方法 55
3.2.2 默認構造方法 57
3.2.3 構造方法重載 58
3.3 this引用 59
3.4 靜態成員 61
3.4.1 靜態變數 61
3.4.2 靜態方法 62
3.4.3 main()方法 63
3.4.4 靜態代碼塊 65
3.5 內部類 65
3.5.1 實例內部類 66
3.5.2 匿名內部類 68
3.5.3 static內部類 69
3.5.4 局部內部類 70
3.6 類的打包或封裝 70
3.6.1 包(package)機制 70
3.6.2 創建JAR檔案 74
第4章 Java面向對象編程 76
4.1 繼承 76
4.1.1 繼承的定義 76
4.1.2 初始化基類 77
4.1.3 方法的重寫 78
4.1.4 super關鍵字 80
4.2 多態 81
4.2.1 對象的類型轉換 81
4.2.2 多態的實現 84
4.3 抽象類和接口 86
4.3.1 抽象方法與抽象類 86
4.3.2 接口概念及特性 87
4.4 終止繼承 89
4.4.1 final類 90
4.4.2 final方法 90
4.4.3 final變數 91
4.5 修飾符的適用範圍 93
4.5.1 修飾符及訪問許可權 93
4.5.2 類內部 93
4.5.3 同一個包的類 94
4.5.4 不同包的子類 95
4.5.5 任意類 96
4.5.6 繼承規則 97
4.6 Java編程規範 97
4.6.1 代碼書寫規範 97
4.6.2 文檔的使用 98
4.7 綜合實例:航班管理 99
4.7.1 需求分析 99
4.7.2 程式設計 100
4.7.3 文檔編制 109
第5章 Java常用類 111
5.1 Object類 111
5.1.1 equals()方法 111
5.1.2 hashCode()方法 112
5.1.3 toString()方法 113
5.2 字元串類 114
5.2.1 String類 114
5.2.2 StringBuffer類 118
5.3 包裝類 119
5.4 Math類 121
5.5 Random類 122
5.6 日期時間類 123
5.6.1 新日期時間包 123
5.6.2 日曆套用 124
5.7 正則表達式 125
5.7.1 基礎知識 125
5.7.2 正則表達式的套用 128
5.8 數組實用類 131
5.8.1 複製數組 131
5.8.2 數組排序 132
5.8.3 數組元素的查找 133
第6章 Java語言新特性 135
6.1 枚舉 135
6.1.1 定義枚舉類型 135
6.1.2 enum構造方法 136
6.1.3 使用EnumMap 137
6.2 註解 138
6.2.1 內置註解 138
6.2.2 自定義註解 142
6.2.3 元註解 142
6.3 lambda表達式 145
6.3.1 lambda表達式簡介 145
6.3.2 函式式接口 146
6.3.3 lambda表達式與匿名
內部類 147
6.3.4 方法引用 149
第7章 容器和泛型 150
7.1 Collection與Iterator接口 150
7.2 Collections實用類 152
7.3 Set(集合) 153
7.3.1 HashSet類 153
7.3.2 TreeSet類 155
7.4 List(列表) 158
7.4.1 ArrayList類 158
7.4.2 LinkedList類 161
7.4.3 棧的實現 162
7.5 Queue(佇列) 163
7.5.1 LinkedList類實現 163
7.5.2 PriorityQueue類 163
7.5.3 雙向佇列 165
7.6 Map(映射) 166
7.6.1 HashMap 166
7.6.2 TreeMap 167
7.7 泛型 169
7.7.1 泛型的基本概念 169
7.7.2 泛型方法 171
7.7.3 受限泛型 173
7.7.4 通配符與受限通配符 174
7.7.5 子類泛型 175
7.7.6 泛型數組 177
7.8 Java增強容器特性 178
7.9 綜合實例 180
第8章 異常處理 183
8.1 異常概述 183
8.2 異常處理機制 184
8.2.1 異常的捕獲與處理 184
8.2.2 聲明拋出異常子句 186
8.2.3 拋出異常 186
8.3 自定義異常類 187
第9章 Java輸入/輸出系統 190
9.1 位元組流 190
9.1.1 位元組數組輸入流 191
9.1.2 位元組數組輸出流 192
9.1.3 檔案輸入流 192
9.1.4 檔案輸出流 193
9.1.5 管道流 194
9.2 過濾流 195
9.2.1 緩衝流類 196
9.2.2 數據流類 197
9.2.3 PrintStream類 199
9.3 字元流 200
9.3.1 轉換流類 201
9.3.2 FileReader和FileWriter類 202
9.3.3 BufferedReader和
BufferedWriter類 203
9.3.4 PrintWriter類 204
9.4 標準I/O 205
9.4.1 重新包裝標準I/O 206
9.4.2 標準I/O流重定向 206
9.5 隨機訪問檔案類 207
9.6 對象序列化 210
9.7 File類 211
9.8 綜合實例 213
第10章 多執行緒 215
10.1 執行緒的創建與啟動 215
10.1.1 繼承java.lang.Thread類 215
10.1.2 實現Runnable接口 217
10.2 執行緒的狀態轉換 218
10.3 執行緒調度 219
10.3.1 調整執行緒優先權 219
10.3.2 執行緒讓步 220
10.3.3 合併執行緒 221
10.4 後台執行緒 222
10.5 執行緒互斥 223
10.5.1 臨界區 223
10.5.2 對象鎖機制 225
10.5.3 顯式Lock對象 228
10.6 執行緒同步 230
10.7 綜合實例 233
第11章 AWT圖形用戶界面編程 238
11.1 AWT容器 238
11.1.1 Window和Frame 239
11.1.2 Panel 239
11.2 布局管理器 241
11.3 事件處理機制 243
11.3.1 AWT事件與監聽器 243
11.3.2 視窗事件 244
11.3.3 滑鼠事件 246
11.3.4 鍵盤事件 247
11.3.5 內部類實現監聽器接口 249
11.3.6 類自身實現監聽器接口 250
11.3.7 外部類實現監聽器接口 251
11.3.8 採用事件適配器 253
11.4 在AWT中繪圖 255
11.4.1 Graphics類 255
11.4.2 AWT繪圖實現原理 257
11.5 綜合實例 259
第12章 Swing組件及套用 264
12.1 視窗(JFrame) 264
12.2 Swing基本組件 265
12.2.1 按鈕(JButton) 265
12.2.2 文本框(JTextField) 267
12.2.3 複選框(JCheckBox)和
單選按鈕(JRadioButton) 269
12.2.4 列表框(JList) 272
12.3 Swing選單程式設計 274
12.3.1 選單條(JMenuBar) 274
12.3.2 彈出式選單
(JPopupMenu) 277
12.3.3 頁簽面板(JTabbedPane) 279
12.3.4 工具列(JToolBar) 281
12.4 Swing數據管理組件 283
12.4.1 表格(JTable) 284
12.4.2 樹狀視圖(JTree) 286
12.5 Swing標準對話框 287
12.5.1 對話框(JDialog) 287
12.5.2 訊息框(JOptionPane) 289
12.5.3 檔案對話框
(JFileChooser) 291
12.6 綜合實例 293
第13章 Java基礎開發綜合實習 297
13.1 設計思路 297
13.2 漢諾塔上盤子模擬 297
13.3 對象定位及盤子的存放 298
13.4 創建漢諾塔及實現手工搬運盤子 299
13.5 自動搬運盤子 305
第14章 Java網路編程 312
14.1 網路程式設計基礎 312
14.1.1 TCP與UDP 312
14.1.2 連線埠和套接字 312
14.2 TCP網路編程 313
14.2.1 TCP通信模型 313
14.2.2 Socket編程相關類 313
14.2.3 TCP通信程式 316
14.3 UDP網路編程 319
14.3.1 UDP相關類 319
14.3.2 UDP通信程式 321
14.3.3 組播 324
14.4 URL網路編程 327
14.4.1 URL類 327
14.4.2 URLConnetction類 329
14.5 綜合實例 331
第15章 Java資料庫編程 336
15.1 SQL語言簡介 336
15.2 JDBC原理 337
15.3 訪問資料庫 339
15.3.1 載入並註冊資料庫驅動 339
15.3.2 建立到資料庫的連線 340
15.3.3 執行資料庫操作 341
15.4 JDBC操作MySQL 342
15.4.1 獲取和載入驅動 342
15.4.2 創建資料庫和表 345
15.4.3 運算元據庫 347
15.4.4 事務處理 349
15.4.5 存儲過程 351
15.5 JDBC操作其他資料庫 353
15.5.1 JDBC操作SQL Server 354
15.5.2 JDBC操作Oracle 355
15.6 綜合實例 356
第2部分 實 驗
實驗1 Java語言及編程環境 362
實驗2 Java語法基礎 363
實驗3 Java類與對象 365
實驗4 Java面向對象編程 368
實驗5 Java常用類 371
實驗6 Java語言新特性 373
實驗7 容器和泛型 374
實驗8 Java異常處理 377
實驗9 Java輸入/輸出系統 378
實驗10 多執行緒 379
實驗11 AWT圖形用戶界面編程 380
實驗12 Swing組件及套用 383
實驗13 Java網路編程 386
實驗14 Java資料庫編程 392
第3部分 習 題 集
第1章 Java語言及編程環境 399
第2章 Java語法基礎 399
第3章 Java類與對象 402
第4章 Java面向對象編程 402
第5章 Java常用類 403
第6章 Java語言新特性 403
第7章 容器和泛型 403
第8章 異常處理 404
第9章 Java輸入/輸出系統 404
第10章 多執行緒 404
第11章 AWT圖形用戶界面編程 405
第12章 Swing組件及套用 405
第14章 Java網路編程 405
第15章 Java資料庫編程 406"