第1篇 認識Java及其環(huán)境配置
第1章 認識Java 3
1.1 什么是Java 3
1.2 Java語言背景
1.3 Java可以做什么 3
1.4 Java的技術特點 4
1.5 Java類庫概述 5
1.6 Java平臺介紹 5
1.7 Java的工作方式 6
1.8 Java語言對軟件開發(fā)技術的影響 6
1.9 Java語言的應用前景 7
第2章 下載和安裝JDK 5.0 9
2.1 系統(tǒng)要求 9
2.2 下載和安裝 9
2.2.1 下載JDK 5.0 9
2.2.2 安裝JDK 5.0 10
2.2.3 設置環(huán)境變量 12
2.3 第一個Java程序“HelloWorld” 13
2.3.1 編寫HelloWorld.java 13
2.3.2 編譯和運行 13
2.3.3 程序解析 14
第3章 選擇開發(fā)工具IDE 15
3.1 常見的IDE介紹 15
3.1.1 文本編輯器UltraEdit和EditPlus 15
3.1.2 Borland公司的JBuilder 17
3.1.3 Sun公司的NetBeans 17
3.1.4 開源的Eclipse 18
3.2 Eclipse介紹 19
3.2.1 下載和安裝Eclipse 19
3.2.2 Eclipse界面一覽 20
3.3 使用Eclipse進行開發(fā) 21
3.3.1 新建工程 21
3.3.2 新建類 22
3.3.3 運行類 23
第2篇 Java語言基礎
第4章 Java基本語法 27
4.1 變量和基本數(shù)據類型 27
4.1.1 變量 27
4.1.2 4類基本數(shù)據類型 28
4.1.3 String不是基本數(shù)據類型 31
4.2 類型轉換 31
4.2.1 基本數(shù)據類型的轉換 31
4.2.2 基本數(shù)據類型的造型 32
4.3 標識符 32
4.4 運算符 33
4.4.1 單操作數(shù)運算符 33
4.4.2 算術運算符 35
4.4.3 移位運算符 35
4.4.4 比較運算符 36
4.4.5 按位運算符 36
4.4.6 邏輯運算符 36
4.4.7 條件運算符 36
4.4.8 賦值運算符 37
4.4.9 運算符優(yōu)先級 38
4.5 程序流程控制—循環(huán)語句 38
4.5.1 for循環(huán)語句 38
4.5.2 while循環(huán)語句 39
4.5.3 do while循環(huán)語句 40
4.6 程序流程控制—選擇判斷語句 41
4.6.1 if else語句 41
4.6.2 swit h語句 43
4.7 跳轉語句 45
4.7.1 break 語句和continue語句 45
4.7.2 return語句 46
4.8 實戰(zhàn)練習 47
4.8.1 使用for循環(huán)來實現(xiàn)對1~99之間奇數(shù)的求和 47
4.8.2 for循環(huán)語句結合switch語句的使用 48
4.8.3 多重循環(huán)實現(xiàn)圖形的繪制 48
第5章 Java面向對象程序設計(上) 53
5.1 類概述 53
5.1.1 類的基本結構 53
5.1.2 類的定義 54
5.1.3 .java源文件結構 55
5.1.4 main()入口方法 55
5.2 類的成員變量和方法 56
5.2.1 訪問修飾符publi . private. protect和default 57
5.2.2 構造方法 57
5.2.3 定義變量 58
5.2.4 定義成員方法 58
5.2.5 參數(shù)的傳遞 60
5.2.6 方法的返回值 61
5.2.7 成員方法重載與過載 63
5.2.8 stati 靜態(tài)成員 64
5.2.9 final關鍵字 66
5.3 對象概述 67
5.3.1 對象的聲明及創(chuàng)建 67
5.3.2 調用對象的方法 69
5.3.3 對象的生存周期 71
5.3.4 對象的清理 71
5.3.5 判斷對象所屬類 71
5.4 實戰(zhàn)練習 73
第6章 Java面向對象程序設計(下) 77
6.1 建立面向對象的思想 77
6.1.1 現(xiàn)實生活中的對象 77
6.1.2 如何抽象出類和對象 78
6.1.3 面向對象設計的好處 78
6.1.4 面向對象的術語介紹 78
6.2 類的繼承 78
6.2.1 繼承的意義 78
6.2.2 如何定義子類 79
6.2.3 覆蓋父類中的方法 81
6.2.4 this關鍵字的使用 83
6.2.5 super的使用 83
6.2.6 繼承的層次結構 83
6.3 抽象類與接口 84
6.3.1 抽象類和抽象方法 84
6.3.2 如何定義和使用抽象類 85
6.3.3 什么是接口 87
6.3.4 如何定義接口 87
6.3.5 實現(xiàn)接口 87
6.3.6 接口的重要性 89
6.4 內部類和匿名類 89
6.4.1 什么是內部類 89
6.4.2 如何使用內部類 90
6.4.3 什么是匿名類 93
6.4.4 使用內部類需要注意的問題 94
6.5 面向對象的其他特性 94
6.5.1 包結構 94
6.5.2 所有類的父類Object類 95
6.6 實戰(zhàn)練習 95
第7章 Java異常處理機制 99
7.1 異常類的層次結構 99
7.2 如何捕獲異常 100
7.3 如何拋出異常 101
7.4 自定義異常 103
7.5 使用finally語句段 105
第8章 Java反射機制 107
8.1 什么是反射機制 107
8.2 獲得類的描述信息 107
8.2.1 Class類概述 107
8.2.2 獲得類的構造方法 109
8.2.3 獲得類的成員方法 110
8.2.4 獲得類的成員變量 112
8.3 動態(tài)使用反射機制 113
8.3.1 運行時創(chuàng)建對象 113
8.3.2 動態(tài)調用指定方法 115
8.3.3 動態(tài)改變成員變量 117
第9章 數(shù)據結構與集合類 119
9.1 數(shù)組 119
9.1.1 數(shù)組的創(chuàng)建 119
9.1.2 用數(shù)組保存對象 122
9.1.3 數(shù)組的排序 124
9.1.4 二維數(shù)組 125
9.2 集合類 127
9.2.1 集合類的結構層次 127
9.2.2 常用集合類List的使用 128
9.2.3 常用集合類Vector的使用 130
9.2.4 常用集合類Map概述 132
9.2.5 常用集合類Hashtable的使用 135
第3篇 圖形用戶界面(GUI)
第10章 Java Swing(上) 139
10.1 概述 139
10.1.1 發(fā)展歷史 139
10.1.2 什么是Swing 139
10.1.3 JFC與Swing的關系 139
10.1.4 類層次結構 140
10.2 窗口與面板 140
10.2.1 頂級容器概述 140
10.2.2 JFrame主窗口 140
10.2.3 JDialog對話框窗口 142
10.2.4 JPanel面板的使用 144
10.3 常用的組件 145
10.3.1 按鈕 146
10.3.2 文本組件 147
10.3.3 單選按鈕JRadioButton 155
10.3.4 復選框JCheckBox 157
10.3.5 下拉列表JComboBox 159
10.3.6 滑塊JSlider 161
10.3.7 進度條JProgressBar及Timer組件 164
10.3.8 菜單JMenu 167
10.3.9 工具欄JToolBar 172
10.4 布局管理器 174
10.4.1 概述 175
10.4.2 邊框布局BorderLayout 175
10.4.3 流動布局FlowLayout 176
10.4.4 卡片布局CardLayout 177
10.4.5 網格布局GridLayout 179
10.4.6 使用絕對定位 181
第11章 Java Swing(下) 183
11.1 Java事件處理機制 183
11.1.1 事件處理模型 183
11.1.2 為組件注冊事件 184
11.1.3 為按鈕添加點擊事件 184
11.2 常見的事件處理 187
11.2.1 鼠標事件 187
11.2.2 鼠標移動事件 190
11.2.3 選項事件 191
11.2.4 窗口事件 194
11.2.5 鍵盤事件 196
11.3 高級組件 198
11.3.1 表格組件概述 198
11.3.2 表格組件的使用 198
11.3.3 樹的概述 201
11.3.4 樹的使用 202
11.3.5 選項卡面板 205
11.3.6 顏色選擇器 206
11.3.7 文件選擇器 208
11.3.8 分隔面板 210
第12章 Applet網頁小程序 213
12.1 Applet概述 213
12.1.1 Applet的基本工作原理 213
12.1.2 如何在網頁中嵌入Applet 213
12.1.3 Applet的安全性 215
12.2 Applet的生命周期和6種基本方法 216
12.3 向Applet傳遞參數(shù) 217
12.4 Applet綜合示例 219
12.4.1 使用Applet顯示當前日期及時間 219
12.4.2 使用Applet實現(xiàn)計算器功能 220
第13章 圖形編程 225
13.1 圖形對象(Graphics)概述 225
13.2 如何畫各類圖形 227
13.2.1 在Applet界面中繪制圖形 227
13.2.2 在JFrame窗口界面中繪制圖形 229
13.2.3 在JPanel面板界面中繪制圖形 230
13.2.4 多邊形的繪制 231
13.2.5 使用Color類來設置顏色 232
13.3 如何顯示圖像 234
13.4 Java 2D圖形 236
13.4.1 Java2D概述 236
13.4.2 畫直線 236
13.4.3 畫圓形 238
13.4.4 畫矩形 239
13.4.5 畫圓角矩形 240
13.4.6 字體控制 241
第14章 多媒體編程 245
14.1 圖像處理 245
14.1.1 在Applet小應用程序中顯示圖像 245
14.1.2 在application應用程序中顯示圖像 247
14.2 動畫處理 249
14.3 聲音處理 252
14.3.1 聲音處理概述 252
14.3.2 使用Applet來處理聲音文件 252
14.3.3 在應用程序application中處理MIDI聲音文件 253
14.3.4 實現(xiàn)簡單的音樂播放器 254
第4篇 Java高級技術
第15章 字符串處理 259
15.1 字符串對象String類 259
15.1.1 String類常用方法 259
15.1.2 查找指定字符串 263
15.1.3 轉化字符串的大小寫 264
15.2 改進的String對象StringBuffer類 264
15.2.1 StringBuffer類的創(chuàng)建和使用 265
15.2.2 StringBuffer類的插入和刪除操作 267
15.3 StringTokenizer類 268
15.4 格式化文本 270
15.4.1 格式化日期 270
15.4.2 格式化數(shù)字 271
15.5 正則表達式 273
第16章 I/O輸入輸出流 277
16.1 流概述 277
16.1.1 什么是流 277
16.1.2 輸入輸出類結構 277
16.1.3 使用輸入流來讀取指定目錄下文件的內容 279
16.1.4 使用輸入輸出流來讀取并顯示文件內容 280
16.1.5 使用read方法讀取文件內容 281
16.1.6 兩種“程序接收用戶數(shù)據輸入”方法的實現(xiàn) 282
16.2 文件類(File)的使用 283
16.2.1 獲取指定文件的描述信息 284
16.2.2 創(chuàng)建新文件 285
16.2.3 文件改名及文件刪除 286
16.2.4 獲取指定文件目錄下的所有文件 288
16.3 讀取文件 289
16.3.1 讀取文件并顯示 289
16.3.2 讀取文件的分類及所涉及到的類 291
16.3.3 讀取文件Reader類的基本方法 293
16.4 寫入文件 293
16.4.1 將輸入的文本保存到文件示例 293
16.4.2 寫入文件的分類及所涉及到的類 295
16.4.3 寫入文件Writer類的基本方法 295
16.5 隨機訪問文件 295
16.5.1 RandomA essFile流的構造及內部方法 295
16.5.2 使用隨機訪問文件流來對文件進行讀寫 296
16.6 創(chuàng)建壓縮文件 297
16.6.1 ZipFile文件壓縮類概述 298
16.6.2 實現(xiàn)數(shù)據文件以“zip方式”壓縮的方法 298
16.6.3 將. lass文件打包成jar文件 301
第17章 線程 303
17.1 線程概述 303
17.1.1 線程的生命周期 303
17.1.2 Thread線程類的成員變量及基本方法 304
17.2 創(chuàng)建線程的兩種方式 305
17.2.1 繼承Thread類并覆蓋run()方法 305
17.2.2 實現(xiàn)Runnable接口 307
17.2.3 使用線程的小程序 308
17.3 線程的啟動與停止 312
17.4 線程的優(yōu)先級 312
17.5 線程的同步 315
17.6 綜合實例——使用多線程實現(xiàn)動畫效果 316
17.6.1 主類代碼Pete.java 316
17.6.2 輔助類代碼PetePanel.java 318
17.6.3 輔助類代碼TextPanel.java 321
17.6.4 程序的編譯. 運行及結果 324
第18章 網絡程序設計 327
18.1 網絡通訊概述 327
18.1.1 什么是網絡通訊 327
18.1.2 網絡協(xié)議基礎 327
18.1.3 Java中所涉及到的網絡應用類 328
18.2 使用URL類 328
18.2.1 URL類中常用的方法 328
18.2.2 使用URLConnetion類 330
18.2.3 簡單的網頁瀏覽器 331
18.3 使用InetAddress類獲取IP地址 333
18.4 使用套接字Socket類 334
18.4.1 Socket類與ServerSo ket類 334
18.4.2 建立與服務器的連接 336
18.5 使用套接字Datagram類 340
18.5.1 Datagram(數(shù)據報)套接字 340
18.5.2 使用Datagram實現(xiàn)數(shù)據傳輸 341
18.6 創(chuàng)建聊天室程序 343
18.6.1 聊天室基本原理 343
18.6.2 客戶端程序 344
18.6.3 服務器端程序 347
第19章 國際化和本地化 355
19.1 概述 355
19.1.1 Java的國際化考慮 355
19.1.2 什么是i18n和l10n 355
19.2 獲取本地化信息 356
19.2.1 如何獲得本地化信息 356
19.2.2 本地化數(shù)字 358
19.2.3 本地化日期 360
19.3 使用Resou eBundle類 361
19.3.1 創(chuàng)建多語言的.Properties文件 362
19.3.2 使用ResouceBundle類獲取.Properties文件信息 362
19.4 實現(xiàn)可選擇不同語言的窗口程序 363
第20章 泛型程序設計 367
20.1 泛型概述 367
20.1.1 Java的新特性——泛型 367
20.1.2 一個泛型的小示例 367
20.2 定義泛型 369
20.3 使用泛型 370
20.4 使用泛型所注意的問題 372
20.5 使用通配類型 373
20.6 泛型接口 375
第21章 訪問數(shù)據庫 379
21.1 使用JDBC連接數(shù)據庫 379
21.1.1 JDBC的作用及主要接口 379
21.1.2 連接不同數(shù)據庫 381
21.1.3 連接數(shù)據庫的基本步驟 382
21.2 執(zhí)行SQL語句 385
21.2.1 使用PreparedStatement接口執(zhí)行SQL語句 385
21.2.2 使用CallableStatement接口執(zhí)行SQL語句 387
21.3 安裝及配置MySQL數(shù)據庫 388
21.3.1 安裝MySQL 5.0數(shù)據庫 388
21.3.2 配置MySQL 5.0數(shù)據庫 390
21.3.3 創(chuàng)建數(shù)據庫test及數(shù)據表userinfo 391
21.4 通過JDBC訪問MySQL數(shù)據庫 392
21.4.1 查詢數(shù)據 393
21.4.2 添加. 刪除及修改數(shù)據 397
第22章 獲取XML數(shù)據 401
22.1 XML概述 401
22.1.1 什么是XML 401
22.1.2 XML的命名空間 402
22.1.3 XML文檔結構 403
22.2 XML的解析 404
22.2.1 DOM處理 404
22.2.2 SAX處理 406
22.3 使用Java處理XML數(shù)據 409
22.3.1 使用JDOM來生成XML文檔 409
22.3.2 使用JDOM來處理XML文檔 414
第23章 處理電子郵件 419
23.1 JavaMail 概述 419
23.1.1 JavaMail技術簡介 419
23.1.2 體系結構 420
23.1.3 主要對象介紹 420
23.2 電子郵件協(xié)議概述 422
23.2.1 SMTP協(xié)議 422
23.2.2 POP3協(xié)議 423
23.2.3 IMAP協(xié)議 423
23.2.4 MIME協(xié)議 423
23.3 郵件處理 423
23.3.1 發(fā)送郵件 423
23.3.2 讀取郵件 426
23.3.3 郵件的回復和轉發(fā) 429
第24章 JSP技術應用 431
24.1 JSP概述 431
24.2 下載和安裝Tom at 432
24.2.1 Tomcat容器介紹 432
24.2.2 Tomcat的下載 432
24.2.3 Tomcat的安裝 433
24.2.4 服務器的啟動 435
24.2.5 第一個JSP程序 435
24.3 JSP語法 437
24.3.1 JSP指令 437
24.3.2 JSP注釋 437
24.3.3 JSP聲明 438
24.3.4 表達式 439
24.3.5 腳本代碼 440
24.3.6 JSP中使用Java腳本實例1 440
24.3.7 JSP中使用Java腳本實例2 441
24.4 JSP的內置對象 442
24.4.1 request對象——獲取信息 442
24.4.2 response對象——發(fā)送信息 443
24.4.3 session對象——保存用戶信息 443
24.4.4 application對象——保存公共信息 444
24.5 Servlet技術與JavaBean 444
24.5.1 Servlet技術 445
24.5.2 JavaBean 446
24.5.3 使用JSP/Servlet結構實現(xiàn)用戶登錄的驗證 447
第5篇 綜 合 案 例
第25章 漢諾塔游戲 457
25.1 游戲規(guī)劃 457
25.2 程序預覽 458
25.3 游戲設計分析 459
25.4 游戲流程 462
25.5 游戲編程技巧 462
25.6 程序代碼分析 463
25.6.1 程序主類MainFrame.java 463
25.6.2 繪圖類程序DrawPanel.java 470
25.6.3 盤子類程序SuperPlate.java 475
25.6.4 幫助信息類程序“幫助信息.java” 475
25.6.5 創(chuàng)建及編寫 476
第26章 學生成績查詢系統(tǒng) 479
26.1 系統(tǒng)結構 479
26.2 系統(tǒng)數(shù)據庫層 480
26.3 程序預覽 483
26.4 視圖(View)模塊——前臺JSP頁面 484
26.4.1 學號輸入頁面main.jsp 484
26.4.2 錯誤信息頁面errorpage.jsp 485
26.4.3 學生成績顯示頁面markshow.jsp 486
26.5 模型(Model)模塊——JavaBean和實用類 488
26.5.1 用于保存學生信息的實體JavaBean——Student學生類 488
26.5.2 保存學生成績信息的實體JavaBean——Course課程類 489
26.5.3 用于連接數(shù)據庫的JavaBean——DataBase數(shù)據庫連接類 490
26.5.4 用于查詢學生信息的JavaBean——MarkDB數(shù)據查詢類 491
26.6 控制器(Controller)模塊——Servlet控制器 492
26.7 學生成績查詢系統(tǒng)的發(fā)布 493
第27章 網上用戶注冊系統(tǒng) 495
27.1 網上用戶注冊系統(tǒng)結構 495
27.2 數(shù)據庫層 496
27.3 程序預覽 498
27.4 視圖(View)模塊——前臺JSP頁面 499
27.4.1 用戶登錄頁面login.jsp 499
27.4.2 用戶注冊頁面register.jsp 500
27.4.3 顯示用戶信息頁面showinfo.jsp 503
27.4.4 出錯信息頁面errorpage.jsp 504
27.5 模型(Model)模塊——JavaBean 505
27.5.1 保存用戶信息的實體JavaBean——InfoItem用戶信息類 505
27.5.2 用于連接數(shù)據庫的JavaBean——DataBase數(shù)據庫連接類 507
27.5.3 操作數(shù)據庫的JavaBean-DBUtility.java數(shù)據操作類 508
27.6 控制器(Controller)模塊——Servlet 509
27.7 網上用戶注冊系統(tǒng)的發(fā)布 512
附錄A Java關鍵字和運算符 515
附錄B Java常用類 517
附錄C Java流參考 521
附錄D 常見術語表 527