第一篇 環境準備篇
第1章 初齣茅廬:走進Java
1.1 Java是什麼 2
1.2 Java曆史背景 2
1.3 Java平颱的3個版本 2
1.4 Java語言特點 2
1.5 Java類庫概述 3
1.6 Java的工作方式 4
1.7 Java語言的前景 4
1.8 小結 5
1.9 習題 5
第2章 撥雲見日:Java語言的環境配置
2.1 操作係統要求 7
2.2 下載與安裝JDK 7 7
2.2.1 JDK 7的下載 7
2.2.2 JDK 7的安裝 9
2.2.3 設置環境變量 10
2.2.4 測試環境變量是否配置成功 12
2.3 第一個Java程序——HelloWorld 12
2.3.1 編寫HelloWorld 12
2.3.2 編譯運行 13
2.3.3 分析結構 14
2.4 小結 14
2.5 習題 14
第3章 見龍在田:開發工具介紹
3.1 UltraEdit和EditPlus編輯器 17
3.2 集成開發工具介紹 17
3.2.1 JBuilder簡介 17
3.2.2 NetBeans簡介 17
3.2.3 Eclipse簡介 17
3.2.4 下載Eclipse 18
3.3 使用Eclipse開發第一個程序——HelloWorld 19
3.4 小結 22
3.5 習題 23
第二篇 Java語法篇
第4章 穩紮馬步:Java編程基礎
4.1 注釋 25
4.2 標識符和關鍵字 26
4.2.1 命名標識符的規則 26
4.2.2 關鍵字 26
4.3 變量和常量 27
4.3.1 變量 27
4.3.2 常量 27
4.4 數據基本類型 28
4.4.1 整型 28
4.4.2 浮點型 29
4.4.3 字符型 29
4.4.4 邏輯型 30
4.5 數據類型之間的轉換 30
4.5.1 自動類型轉換 31
4.5.2 強製類型轉換 31
4.6 JAVA中的運算符 32
4.6.1 算術運算符 32
4.6.2 關係運算符 34
4.6.3 邏輯運算符 34
4.6.4 賦值運算符 35
4.6.5 位運算符 35
4.6.6 移位運算符 37
4.6.7 三元運算符 38
4.6.8 對象運算符 39
4.7 運算符的優先級 39
4.8 Java語言的編碼規範 40
4.8.1 語法規範 40
4.8.2 代碼編寫規範 40
4.9 本章知識點綜閤應用 41
4.9.1 轉換基本數據類型 41
4.9.2 Java的運算符 43
4.10 小結 50
4.11 習題 50
第5章 白鶴亮翅:程序控製語句
5.1 條件語句 52
5.1.1 if語句 52
5.1.2 switch語句 55
5.1.3 if與switch的區彆 56
5.2 循環語句 57
5.2.1 for循環結構 57
5.2.2 while循環結構 58
5.2.3 do-while循環結構 59
5.2.4 while與do-while的區彆 60
5.3 break和continue語句 61
5.3.1 break語句 61
5.3.2 continue語句 62
5.3.3 break與continue的區彆 63
5.4 本章知識點綜閤應用 63
5.4.1 控製程序的流程 63
5.4.2 計算階乘 66
5.5 小結 67
5.6 習題 67
第6章 知己知彼:麵嚮對象程序設計
6.1 麵嚮對象的基本概念 69
6.1.1 麵嚮過程與和麵嚮對象的程序設計 69
6.1.2 對象和封裝 69
6.1.3 類和實例 70
6.2 類 71
6.2.1 類的定義 71
6.2.2 成員變量 72
6.2.3 成員方法 74
6.2.4 構造方法 76
6.2.5 main()方法 76
6.2.6 參數的傳遞 77
6.2.7 類對象的創建、使用和清除 78
6.3 包 80
6.3.1 包的作用 80
6.3.2 包的定義 80
6.3.3 運行包中的類 81
6.3.4 引入包中的類 81
6.4 類中變量和方法的訪問權限 82
6.4.1 公有類型變量和方法 83
6.4.2 受保護類型變量和方法 83
6.4.3 私有類型變量和方法 84
6.5 類的繼承 85
6.5.1 繼承的概念 86
6.5.2 繼承的實現—創建子類 86
6.5.3 繼承數據成員和方法 87
6.5.4 覆蓋 88
6.5.5 繼承中要注意的問題 90
6.6 類的多態性 90
6.7 抽象類 92
6.7.1 抽象類的定義 92
6.7.2 抽象類實例 92
6.8 接口 93
6.8.1 接口的定義 93
6.8.2 接口的使用 94
6.8.3 接口的繼承 95
6.9 內部類 96
6.9.1 匿名類(anonymous class) 96
6.9.2 靜態類(static class) 97
6.9.3 成員類(member class) 97
6.9.4 局部類(local class) 98
6.10 類相關關鍵字 99
6.10.1 this關鍵字 99
6.10.2 static修飾符 99
6.10.3 final修飾符 101
6.10.4 super關鍵字 103
6.11 本章知識點綜閤應用 104
6.11.1 Java的參數傳遞 104
6.11.2 自定義形狀類 105
6.11.3 方法和變量在繼承時的覆蓋與隱藏 110
6.12 小結 114
6.13 習題 114
第7章 穩紮穩打:數組
7.1 一維數組 116
7.1.1 一維數組的聲明 116
7.1.2 一維數組的創建 116
7.1.3 一維數組的初始化 116
7.1.4 一維數組元素的使用 117
7.1.5 一維數組元素的默認值 118
7.2 二維數組 119
7.2.1 二維數組聲明 119
7.2.2 二維數組的創建 119
7.2.3 二維數組的初始化 120
7.2.4 二維數組的遍曆 120
7.3 數組的相關操作 121
7.3.1 數組長度 121
7.3.2 數組填充 121
7.3.3 數組復製 122
7.3.4 數組比較 123
7.4 數組排序 123
7.4.1 sort函數排序 123
7.4.2 冒泡排序 124
7.5 本章知識點綜閤應用 125
7.5.1 使用Arrays 125
7.5.2 求質數 127
7.5.3 動態調整數組長度 129
7.6 小結 130
7.7 習題 131
第8章 藉花獻佛:集閤
8.1 Java集閤框架 133
8.2 Collection接口 133
8.2.1 轉換構造方法 133
8.2.2 Collection接口的定義 133
8.2.3 Collection接口的基本操作 134
8.2.4 遍曆Collection接口 134
8.2.5 Collection接口的批量操作 135
8.2.6 Collection接口的數組操作 136
8.3 Set接口 136
8.3.1 Set接口的定義 136
8.3.2 Set接口的基本操作 137
8.3.3 Set接口的批量操作 138
8.3.4 Set接口的數組操作 139
8.4 List接口 139
8.4.1 List接口的定義 140
8.4.2 從Collection繼承的操作 140
8.4.3 按位置訪問和查找操作 141
8.4.4 List迭代方法 142
8.5 Map接口 143
8.5.1 Map接口的定義 143
8.5.2 Map接口的基本操作 144
8.5.3 Map接口的批量操作 145
8.6 實現 145
8.6.1 實現的類型 146
8.6.2 Set接口的實現 147
8.6.3 List接口的實現 148
8.6.4 Map接口的實現 148
8.7 本章知識點綜閤應用 149
8.7.1 ArrayList、Vector和LinkedList 149
8.7.2 對List排序 154
8.7.3 對Map排序 156
8.8 小結 158
8.9 習題 158
第9章 點石成金:字符串處理
9.1 字符類 160
9.1.1 Character字符包裝器類 160
9.1.2 轉義字符序列 161
9.1.3 常用構造函數 161
9.1.4 字符的比較 162
9.1.5 取字符對象的值 162
9.2 字符串String 163
9.2.1 字符串聲明與賦值 163
9.2.2 常用構造函數 163
9.2.3 獲取字符串長度 165
9.3 字符串常用操作 166
9.3.1 字符串連接 166
9.3.2 字符串比較 167
9.3.3 字符串截取 168
9.3.4 字符串查找 169
9.3.5 字符串大小寫轉換 170
9.3.6 字符串內容的替換 171
9.3.7 獲取字符串某位置的字符 172
9.4 字符串其他操作 172
9.5 字符串數組 173
9.5.1 字符串數組的構造函數 174
9.5.2 字符串數組的屬性及常用方法 174
9.6 字符串緩存類StringBuffer 175
9.6.1 常用構造函數 175
9.6.2 字符串緩存與字符串的轉化 176
9.6.3 字符串緩存擴充 177
9.6.4 字符串緩存插入 177
9.7 字符串緩存的其他操作 178
9.8 字符串標記類 179
9.8.1 常用構造函數 179
9.8.2 常用方法 179
9.9 本章知識點綜閤應用 180
9.9.1 使用String 180
9.9.2 基本數據類型與字符串的轉化 184
9.9.3 使用StringBuffer 186
9.10 小結 190
9.11 習題 190
第三篇 Java編程提高篇
第10章 雲行雨施:Java Swing編程
10.1 Swing的特點 192
10.2 Swing容器 192
10.2.1 JFrame容器 192
10.2.2 JPanel容器 195
10.3 創建圖形界麵程序 196
10.4 Swing常用組件 197
10.4.1 按鈕組件JButton 197
10.4.2 復選框組件JCheckBox 198
10.4.3 單選按鈕組件JRadioButton 198
10.4.4 文本框組件JTextField 198
10.4.5 密碼框組件JPasswordField 199
10.4.6 組閤框組件JComboBox 199
10.4.7 滑塊組件JSlider 199
10.4.8 微調組製組件JSpinner 199
10.4.9 菜單組件JMenu 200
10.5 不可編輯的信息顯示組件 200
10.5.1 標簽組件JLabel 200
10.5.2 進度條組件JProgressBar 201
10.5.3 工具提示組件JToolTip 201
10.6 Swing高級組件 202
10.6.1 顔色選擇器JColorChooser 202
10.6.2 文件選擇器JFileChooser 202
10.6.3 文本編輯組件JEditorPane和JTextPane 203
10.6.4 文本區組件JTextArea 204
10.6.5 錶組件JTable 204
10.6.6 樹組件JTree 205
10.6.7 麵闆組件JPanel 206
10.6.8 滾動麵闆JScrollPane 207
10.6.9 拆分麵闆JSplitPane 207
10.6.10 選項卡麵闆JTabbedPane 208
10.6.11 工具欄JToolBar 208
10.7 本章知識點綜閤應用 209
10.7.1 一個圓形的按鈕 209
10.7.2 捕捉屏幕 211
10.7.3 縮放圖片 214
10.8 小結 219
10.9 習題 219
第11章 十拿九穩:標準布局
11.1 標準布局管理器簡介 222
11.1.1 BorderLayout邊框布局 222
11.1.2 BoxLayout盒狀布局 223
11.1.3 CardLayout卡片布局 224
11.1.4 FlowLayout流動布局 225
11.1.5 GridLayout網格布局 226
11.1.6 GridBagLayout網格包布局 227
11.2 使用布局管理器技巧 228
11.2.1 設置布局管理器 228
11.2.2 嚮容器中添加組件 229
11.2.3 提供組件大小和排列策略 229
11.2.4 設置組件之間的間隙 229
11.2.5 設置容器的語言方嚮 230
11.3 本章知識點應用 231
11.3.1 設計用戶登錄界麵 231
11.3.2 日曆 235
11.4 小結 241
11.5 習題 242
第12章 料事如神:Java異常處理
12.1 Java中的異常 244
12.2 異常處理 245
12.2.1 try語句 246
12.2.2 catch語句 247
12.2.3 異常類型 247
12.2.4 異常處理原則 248
12.3 Throwable類 249
12.3.1 Throwable類的定義和方法 249
12.3.2 異常類的繼承關係 250
12.3.3 使用throws拋齣異常 251
12.3.4 使用throw拋齣異常 252
12.3.5 運行期異常 252
12.4 自定義異常 253
12.4.1 創建自定義異常類 253
12.4.2 處理自定義異常 254
12.5 finally子句 255
12.6 異常的幾個問題 256
12.6.1 異常丟失 256
12.6.2 構造函數中的異常處理 257
12.6.3 異常匹配 258
12.7 異常的優點 260
12.8 本章知識點綜閤應用 262
12.8.1 throw、throws、try和catch 262
12.8.2 自定義異常類 264
12.8.3 使用finally 266
12.9 小結 269
12.10 習題 270
第13章 棒打雙狗:Java的輸入/輸齣處理
13.1 什麼是流 272
13.2 字節流 272
13.2.1 輸入流類InputStream 272
13.2.2 輸齣流類OutputStream 274
13.3 字符流 275
13.3.1 Writer類 275
13.3.2 Reader類 277
13.3.3 讀取Unicode字符 278
13.3.4 讀取字符文件 279
13.4 File類 281
13.4.1 創建文件夾 281
13.4.2 創建文件 282
13.4.3 復製文件 283
13.4.4 刪除文件 284
13.4.5 刪除文件夾 284
13.5 流的運用 286
13.5.1 文件流 286
13.5.2 管道流 287
13.5.3 I/O重定嚮 287
13.5.4 過濾流 288
13.5.5 序列化對象 289
13.6 本章知識點綜閤應用 290
13.6.1 獲取文件的屬性信息 290
13.6.2 創建文件和目錄 292
13.6.3 刪除文件和目錄 296
13.7 小結 299
13.8 習題 299
第14章 以柔剋剛:多綫程編程
14.1 綫程 301
14.1.1 綫程的組成 301
14.1.2 多綫程概念 301
14.1.3 Java中的多綫程 302
14.2 創建綫程 302
14.2.1 繼承Thread類創建綫程 302
14.2.2 實現Runnable接口創建綫程 303
14.3 綫程的狀態 305
14.4 綫程的優先級 306
14.5 綫程的同步 307
14.5.1 同步方法 307
14.5.2 固定鎖和同步 308
14.6 綫程的控製 310
14.6.1 啓動綫程 310
14.6.2 掛起和恢復綫程 310
14.6.3 綫程的休眠方法 310
14.6.4 綫程的加入方法 312
14.6.5 中斷綫程 314
14.6.6 結束綫程 314
14.7 綫程間通信 315
14.7.1 PipedWriter類詳解 315
14.7.2 PipedReader類詳解 316
14.7.3 管道通信實例 317
14.8 多綫程的死鎖問題 318
14.9 多綫程的缺點 319
14.10 本章知識點綜閤應用 319
14.10.1 定義和啓動綫程 319
14.10.2 綫程的協作 321
14.10.3 綫程優先級 324
14.11 小結 325
14.12 習題 325
第15章 李代桃僵:網絡編程
15.1 網絡編程基礎 327
15.1.1 什麼是TCP協議 327
15.1.2 什麼是IP協議 327
15.1.3 什麼是TCP/IP 327
15.1.4 什麼是UDP協議 328
15.1.5 什麼是端口 328
15.1.6 什麼是套接字 328
15.1.7 java.net包 328
15.2 InetAddress類 329
15.3 URL網絡編程 330
15.3.1 URL 330
15.3.2 符語法 331
15.3.3 URLConnection類 332
15.4 TCP的網絡編程 332
15.4.1 Socket 332
15.4.2 重要的Socket API 333
15.4.3 服務器端程序設計 334
15.4.4 客戶端程序設計 336
15.5 UDP網絡編程 336
15.5.1 UDP通信概念 337
15.5.2 UDP的特性 337
15.5.3 UDP的應用 338
15.5.4 UDP與TCP的區彆 338
15.6 本章知識點綜閤應用 339
15.6.1 獲取URL的信息 339
15.6.2 HTTP客戶端 341
15.6.3 基本的Socket編程 343
15.7 小結 348
15.8 習題 349
第16章 一箭雙雕:內存管理技術
16.1 程序中“垃圾”是什麼 351
16.2 “垃圾”收集器 354
16.3 如何收集“垃圾” 356
16.3.1 finalize重寫 357
16.3.2 finalize安全問題 358
16.4 非綫程“垃圾” 361
16.5 綫程“垃圾” 362
16.6 本章知識點綜閤應用 365
16.6.1 弱引用實例 365
16.6.2 軟引用實例 367
16.6.3 最終守護者實例 369
16.7 小結 371
16.8 習題 371
第17章 成人之美:處理圖像
17.1 加載與繪製 373
17.2 圖標 376
17.2.1 Icon接口 376
17.2.2 ImageIcon類 379
17.3 處理圖像編碼 380
17.3.1 JPEG編碼器 381
17.3.2 GifEncoder編碼器 382
17.4 圖像抓取 384
17.4.1 createScreenCapture方法 384
17.4.2 抓屏功能使用實例 384
17.5 圖像濾鏡的開發 388
17.6 RGB色彩通道過濾 390
17.7 捲積濾鏡 391
17.8 本章知識點綜閤應用 393
17.9 小結 402
17.10 習題 402
第18章 裏應外閤:反射與注解的應用
18.1 反射概念 404
18.2 Class類的使用實例 404
18.3 數組與Class類 408
18.4 精確判斷對象類型 409
18.4.1 Field類的知識與使用 410
18.4.2 Method類的知識與使用 412
18.4.3 Constructor類的知識與使用 414
18.5 反射與修飾符 416
18.6 取消訪問限製 420
18.7 利用反射動態創建數組對象 422
18.8 本章知識點綜閤應用 423
18.8.1 instanceof操作符 423
18.8.2 獲取類的信息 424
18.9 小結 431
18.10 習題 431
第19章 如虎添翼:使用JDBC連接數據庫
19.1 數據庫 433
19.1.1 數據庫簡介 433
19.1.2 SQL語句 433
19.2 JDBC簡介 435
19.2.1 什麼是JDBC 435
19.2.2 JDBC與Java結閤 435
19.2.3 JDBC如何實現數據庫的平颱無關性 435
19.3 JDBC中的常用類和接口 436
19.3.1 驅動程序管理類(DriverManager) 436
19.3.2 聲明類(Statement) 436
19.3.3 數據庫連接類(Connection) 437
19.3.4 結果集閤類(ResultSet) 437
19.4 如何實現數據庫的連接 438
19.4.1 加載閤適的數據庫驅動程序 438
19.4.2 數據庫配置問題 438
19.4.3 建立數據庫連接並獲得Statement對象 440
19.4.4 執行數據庫查詢語句 440
19.4.5 獲得查詢結果 441
19.4.6 關閉數據庫連接 441
19.4.7 完整的示例程序 441
19.5 元數據 442
19.5.1 數據庫的DatabaseMetaData元數據 443
19.5.2 結果集的ResultSetMetaData元數據 443
19.6 批處理 444
19.6.1 批處理規範 444
19.6.2 批處理舉例 444
19.7 本章知識點綜閤應用 445
19.7.1 訪問數據庫 445
19.7.2 對數據庫進行查詢 446
19.7.3 增加、修改、刪除數據庫中的數據 447
19.8 小結 448
19.9 習題 448
第20章 同甘共苦:使用Swing組件創建數據庫應用程序
20.1 JComboBox組件創建數據庫應用程序 450
20.1.1 創建JComboBox 450
20.1.2 DefaultComboBoxModel創建JComboBox 452
20.2 JList組件創建數據庫應用程序 453
20.2.1 DefaultListModel創建JList 453
20.2.2 ListModel創建JList 454
20.3 JTable組件創建數據庫應用程序 456
20.3.1 JTable相關的類 456
20.3.2 DefaultTableModel創建JTable 457
20.4 本章知識點綜閤應用 458
20.4.1 使用ResultSet更新數據庫 458
20.4.2 使用RowSet 462
20.5 小結 472
20.6 習題 473
第21章 明修棧道:JSP技術
21.1 JSP簡介 475
21.1.1 MVC模式 475
21.1.2 JSP技術的優點 476
21.2 基本語法 476
21.2.1 注釋 476
21.2.2 JSP指令 477
21.3 JSP腳本元素 480
21.3.1 JSP聲明 480
21.3.2 JSP錶達式 481
21.4 JSP動作 481
21.4.1 include動作元素 482
21.4.2 forword動作元素 482
21.4.3 plugin動作元素 483
21.4.4 param動作元素 483
21.4.5 useBean、setProperty和getProperty動作元素 484
21.5 JSP內置對象 486
21.5.1 request對象 486
21.5.2 response對象 488
21.5.3 session對象 488
21.5.4 application對象 489
21.5.5 out對象 491
21.5.6 config對象 491
21.5.7 exception對象 492
21.5.8 pageContext對象 492
21.6 本章知識點綜閤應用 493
21.6.1 獲取客戶端的真實IP地址 493
21.6.2 設置和讀取Cookie 495
21.6.3 JSP無刷新聊天室 499
21.7 小結 505
21.8 習題 505
第22章 暗度陳倉:Servlet技術
22.1 Servlet簡介 507
22.1.1 什麼是Servlet 507
22.1.2 Servlet的生命周期 507
22.1.3 Servlet的基本結構 508
22.2 HTTPServlet應用編程接口 508
22.2.1 init()方法 509
22.2.2 service()方法 509
22.2.3 doGet()方法 509
22.2.4 doPost()方法 509
22.2.5 destroy()方法 509
22.2.6 GetServletConfig()方法 510
22.2.7 GetServletInfo()方法 510
22.3 創建HttpServlet 510
22.4 調用HttpServlet 512
22.4.1 由URL調用Servlet 512
22.4.2 在<FORM>標記中指定Servlet 512
22.4.3 在<SERVLET>標記中指定Servlet 513
22.4.4 在ASP文件中調用Servlet 513
22.5 Servlet之間的跳轉 514
22.5.1 轉嚮Forward 514
22.5.2 重定嚮Redirect 515
22.6 本章知識點綜閤應用 515
22.6.1 用Servlet生成圖形驗證碼 515
22.6.2 用Servlet實現分頁查看數據庫 520
22.7 小結 534
22.8 習題 534
第四篇 開發實戰篇
第23章 小試牛刀:界麵遊戲拼圖
23.1 遊戲簡介 536
23.2 素材準備 537
23.3 遊戲設計 537
23.3.1 加載和拆分圖片 537
23.3.2 實現圖片的隨機排列 538
23.3.3 實現圖片的移動 538
23.3.4 參考圖像的縮放 539
23.4 開發步驟 539
23.4.1 自定義按鈕類設計:ImageButton類 540
23.4.2 遊戲界麵布局:構造窗體類PuzzleGame 540
23.4.3 加載和拆分圖像 541
23.4.4 創建拼接圖麵闆 542
23.4.5 創建顯示參考圖像的麵闆 543
23.4.6 創建菜單欄 545
23.4.7 實現按鈕事件監聽器類 547
23.4.8 設置窗體在屏幕中齣現的位置 547
23.4.9 編寫main()方法 548
23.4.10 運行測試 548
23.5 打包部署 548
23.6 小結 549
第24章 鶴嘯九天:學生信息管理係統
24.1 需求分析 551
24.2 係統設計 551
24.3 登錄模塊 551
24.3.1 設計構想 551
24.3.2 實現登錄模塊 552
24.4 學生信息模塊相關流程 554
24.4.1 設計構想 554
24.4.2 實現學生信息主界麵 554
24.4.3 增加學生信息 557
24.4.4 刪除學生信息 560
24.4.5 修改學生信息 563
24.4.6 基本學生信息查詢 567
24.4.7 成績查詢 571
24.4.8 退齣係統 575
24.5 教師信息模塊相關流程 576
24.5.1 主界麵 576
24.5.2 增加老師信息 579
24.5.3 刪除老師信息 583
24.5.4 修改老師信息 586
24.5.5 錄入成績 590
24.5.6 刪除成績 593
24.5.7 修改成績 596
24.5.8 基本信息查詢 600
24.5.9 退齣係統 604
24.6 小結 606
· · · · · · (
收起)