內容簡介
《Java程式設計標準教程》除了作為Sun公司SCJP認證考試指定用書,還可作為高等院校相關專業或社會培訓機構的教學用書,以及編程愛好者的自學用書。
本書從初學者的角度出發,通過通俗易懂的語言和大量生動典型的實例,由淺入深、循序漸進地介紹套用Java進行網路編程的常用技術和方法。全書共20章。第1章~第8章主要介紹搭建Java開發環境、開發工具Eclipse、Java語言基礎、算法和程式控制結構語句、數組及其套用、字元串處理、面向對象編程和集合類及其套用等內容;第9章~第14章主要介紹異常處理、I/O處理技術、執行緒技術、JDBC技術、Java Swing等一些高級開發技術,並通過一個進銷存管理系統對前面章節的內容進行了實踐;第15章~第20章主要介紹JSP環境基礎、JSP語法基礎、JSP的內置對象、JavaBean技術和Servlet技術等Java Web領域的基礎知識,最後通過一個部落格網站介紹Java Web基礎知識的綜合套用。
本書附有配套光碟。光碟提供了書中實例的原始碼,並經過精心調試,在Windows XP/Windows 2000/Windows 2003 Server下全部通過,保證能夠正常運行。
本書適用於Java初、中級用戶,也可作為大中院校師生和培訓班的教材,對於網路編程愛好者,本書也有非常高的參考價值。
《Java程式設計標準教程》是Sun公司SCJP認證考試的指定用書。全書共13章。第1章全面系統地介紹了Java語言的發展史、特性、Java開發環境的搭建、Java程式的編寫編譯和運行過程以及Java開發常用IDE工具的使用。第2章詳細講解了Java語言的一些基本語法。第3章和第4章全面透徹地講解了面向對象編程的思想和套用。第5章~第13章講解了異常處理和斷言、常用Java類、正則表達式、多執行緒技術、泛型和集合框架的使用、IO編程、網路編程、Swing編程、註解和反射等方面的知識。
目錄
第1章 搭建Java開發環境 001
1.1 Java語言的產生與發展 002
1.2 Java語言的特點 002
1.3 搭建Java開發環境 003
1.3.1 下載JDK 003
1.3.2 安裝JDK 006
1.3.3 Windows系統下配置和測試JDK 008
1.4 Java程式的開發過程 009
1.5 一個簡單的Java應用程式 009
1.5.1 構建Java程式 010
1.5.2 編譯和運行Java程式 010
1.5.3 使用Java核心API文檔 011
1.6 本章小結 012
第2章 開發工具Eclipse 013
2.1 Eclipse的安裝與啟動 014
2.1.1 下載Eclipse 014
2.1.2 安裝Eclipse中文包 016
2.1.3 啟動Eclipse 019
2.2 Eclipse的工作檯 020
2.2.1 Eclipse工作檯概述 020
2.2.2 透視圖 021
2.2.3 視圖 022
2.2.4 編輯器 024
2.2.5 熟悉Eclipse的選單欄和工具列 025
2.3 編寫Java程式 032
2.3.1 新建Java項目 032
2.3.2 新建Java類 033
2.3.3 編寫Java代碼 035
2.3.4 運行程式 036
2.3.5 保存並關閉Java項目 036
2.4 Eclipse資源管理 037
2.4.1 導入Java類 037
2.4.2 導入Java項目 038
2.4.3 導出Java項目 039
2.5 本章小結 040
第3章 Java語言基礎 041
3.1 編碼規範 042
3.1.1 Java命名規範 042
3.1.2 代碼編寫規則 042
3.1.3 Java程式的注釋 043
3.2 常量與變數 044
3.2.1 常量的概念及使用 044
3.2.2 變數的概念及命名規則 044
3.2.3 變數的初始化及賦值 045
3.2.4 變數的有效範圍 046
3.3 數據類型 048
3.3.1 基本數據類型 048
3.3.2 引用類型 053
3.3.3 基本類型與引用類型的區別 053
3.3.4 數據類型間的轉換 055
3.4 運算符 061
3.4.1 賦值運算符 061
3.4.2 算術運算符 063
3.4.3 關係運算符 065
3.4.4 邏輯運算符 069
3.4.5 位運算符 071
3.4.6 字元串連線運算符 074
3.4.7 其他運算符 074
3.4.8 運算符的優先權別及結合性 076
3.5 了解Java標識符 077
3.6 本章小結 077
第4章 算法和流程控制語句 078
4.1 算法 079
4.1.1 什麼是算法 079
4.1.2 算法的描述方法 079
4.1.3 程式3種控制結構 080
4.2 分支語句 082
4.2.1 簡單的if條件語句 082
4.2.2 if...else條件語句 083
4.2.3 if...else if多分支語句 085
4.2.4 if語句的嵌套 087
4.2.5 switch多分支語句 089
4.2.6 if語句和switch語句的區別 092
4.3 循環語句 092
4.3.1 for循環語句 092
4.3.2 while循環語句 094
4.3.3 do...while循環語句 096
4.3.4 循環的嵌套 098
4.3.5 各循環語句間的區別 099
4.4 跳轉語句 099
4.4.1 break跳轉語句 100
4.4.2 continue跳轉語句 101
4.4.3 return跳轉語句 102
4.5 本章小結 102
第5章 數組 103
5.1 一維數組 104
5.1.1 聲明一維數組 104
5.1.2 創建一維數組 104
5.1.3 初始化一維數組 105
5.1.4 使用一維數組 106
5.2 二維數組 107
5.2.1 聲明二維數組 108
5.2.2 創建二維數組 108
5.2.3 初始化二維數組 109
5.2.4 使用二維數組 110
5.3 多維數組 111
5.3.1 聲明多維數組 111
5.3.2 創建多維數組 111
5.3.3 初始化多維數組 111
5.3.4 使用多維數組 112
5.4 運算元組 112
5.4.1 複製數組 112
5.4.2 排序數組 113
5.4.3 比較數組 115
5.4.4 搜尋數組 116
5.4.5 填充數組 117
5.4.6 傳遞數組 118
5.5 本章小結 119
第6章 字元串處理 120
6.1 字元串 121
6.1.1 字元串常量 121
6.1.2 聲明字元串變數 121
6.1.3 創建字元串 121
6.2 連線字元串 123
6.2.1 字元串與字元串的連線 123
6.2.2 字元串與其他類型數據的連線 123
6.3 字元串操作 125
6.3.1 比較字元串 125
6.3.2 獲取字元串的長度 127
6.3.3 字元串的大小寫轉換 127
6.3.4 查找字元串 127
6.3.5 獲取字元串的子字元串 129
6.3.6 替換或去除字元串中的空格 129
6.3.7 分割字元串 130
6.4 格式化字元串 130
6.4.1 常規類型的格式化 130
6.4.2 日期和時間字元串格式化 133
6.5 使用StringBuilder類 136
6.5.1 創建字元串生成器 137
6.5.2 字元串生成器的套用 137
6.6 本章小結 139
第7章 面向對象編程 140
7.1 面向對象程式設計 141
7.1.1 面向對象程式設計的概述 141
7.1.2 面向對象程式設計的特點 141
7.2 類和對象 143
7.2.1 定義類 143
7.2.2 了解成員方法 144
7.2.3 成員變數和局部變數 145
7.2.4 構造方法的概念及用途 146
7.2.5 創建對象 147
7.2.6 使用對象 147
7.2.7 銷毀對象 148
7.3 包 148
7.3.1 包的概念 149
7.3.2 創建包 149
7.3.3 使用包中的類 149
7.4 繼承 150
7.4.1 繼承的概念 150
7.4.2 子類對象的創建 150
7.4.3 繼承的使用原則 150
7.4.4 使用this關鍵字 152
7.4.5 使用super關鍵字 152
7.5 多態 153
7.5.1 方法的重載 153
7.5.2 方法的覆蓋 154
7.6 抽象類與final類 155
7.6.1 抽象類的概念及套用 155
7.6.2 final類的概念及套用 157
7.7 接口 158
7.7.1 定義接口 158
7.7.2 實現接口 158
7.8 本章小結 160
第8章 集合類 161
8.1 集合類概述 162
8.2 Collection接口 162
8.2.1 addAll(Collection? extends E col)方法 163
8.2.2 removeAll(Collection? col)方法 164
8.2.3 retainAll(Collection? col)方法 165
8.2.4 containsAll(Collection? col)方法 165
8.2.5 toArray(T[]t)方法 166
8.3 List集合 166
8.3.1 List集合的用法 166
8.3.2 使用ArrayList類 169
8.3.3 使用LinkedList類 170
8.3.4 客戶化排序List集合 171
8.4 Set集合 174
8.4.1 使用HashSet類 175
8.4.2 使用TreeSet類 176
8.5 Map集合 179
8.5.1 Map集合的用法 180
8.5.2 使用HashMap類 181
8.5.3 使用TreeMap類 182
8.6 本章小結 184
第9章 異常處理 185
9.1 常見異常列表 186
9.2 Java異常處理 186
9.3 內置異常類 192
9.3.1 Error類 192
9.3.2 Exception類 193
9.4 自定義異常 194
9.5 異常處理使用原則 196
9.6 本章小結 197
第10章 I/O處理 198
10.1 Java的I/O處理方式 199
10.1.1 I/O的基本模式 199
10.1.2 Java提供的流類 199
10.2 以byte為數據單位的流類 201
10.2.1 InputStream類 201
10.2.2 OutputStream類 202
10.3 以char為數據單位的流類 203
10.3.1 Reader類 203
10.3.2 Writer類 204
10.4 常用I/O處理方式 205
10.4.1 檔案類 205
10.4.2 檔案的位元組輸入輸出流 207
10.4.3 檔案的字元輸入輸出流 209
10.4.4 對象序列化 211
10.5 對檔案及資料夾進行操作 213
10.5.1 複製檔案 213
10.5.2 複製資料夾 214
10.5.3 刪除檔案 215
10.5.4 分行寫入檔案 215
10.6 本章小結 216
第11章 執行緒 217
11.1 概述 218
11.1.1 進程 218
11.1.2 執行緒 218
11.2 執行緒的創建 219
11.2.1 執行緒的創建方式 219
11.2.2 繼承Thread類 220
11.2.3 實現Runnable接口 222
11.2.4 兩種創建執行緒方式的比較 223
11.3 執行緒的生命周期 223
11.4 執行緒的優先權及執行順序 224
11.4.1 執行緒的優先權 224
11.4.2 執行緒的執行順序 225
11.5 執行緒的控制 228
11.5.1 執行緒的啟動 228
11.5.2 執行緒的掛起 228
11.5.3 執行緒狀態檢查 232
11.5.4 結束執行緒 233
11.5.5 後台執行緒 233
11.5.6 執行緒組 234
11.6 執行緒的同步 234
11.7 執行緒通信 237
11.8 多執行緒產生死鎖 240
11.9 本章小結 241
第12章 JDBC技術 242
12.1 JDBC概述 243
12.1.1 JDBC-ODBC橋技術介紹 243
12.1.2 JDBC技術介紹 243
12.1.3 JDBC驅動類型 244
12.2 JDBC中的常用接口 245
12.2.1 Driver接口 245
12.2.2 DriverManager 245
12.2.3 Connection接口 245
12.2.4 Statement接口 246
12.2.5 PreparedStatement接口 246
12.2.6 CallableStatement接口 247
12.2.7 ResultSet接口 248
12.3 連線資料庫 250
12.3.1 載入JDBC驅動程式 250
12.3.2 創建資料庫連線 250
12.3.3 執行SQL語句 250
12.3.4 獲得查詢結果 251
12.3.5 關閉連線 251
12.4 運算元據庫 251
12.4.1 添加數據 251
12.4.2 查詢數據 253
12.4.3 修改數據 254
12.4.4 刪除數據 255
12.5 套用JDBC事務 256
12.6 連線池技術 258
12.6.1 連線池簡介 259
12.6.2 獲得JNDI的名稱實現對資料庫的連線 259
12.7 本章小結 261
第13章 使用Java Swing 262
13.1 Swing概述 263
13.2 創建窗體 263
13.3 使用組件 265
13.3.1 JLabel(標籤)組件 265
13.3.2 JButton(按鈕)組件 266
13.3.3 JRadioButton(單選按鈕)組件 268
13.3.4 JCheckBox(複選框)組件 269
13.3.5 JComboBox(選擇框)組件 270
13.3.6 JList(列表框)組件 272
13.3.7 JTextField(文本框)組件 274
13.3.8 JPasswordField(密碼框)組件 275
13.3.9 JTextArea(文本域)組件 276
13.4 常用布局管理器 277
13.4.1 不使用布局管理器 277
13.4.2 使用邊界布局管理器 278
13.4.3 使用格線布局管理器 280
13.5 本章小結 282
第14章 進銷存管理系統 283
14.1 需求分析 284
14.1.1 需求分析 284
14.1.2 可行性分析 284
14.2 系統設計 284
14.2.1 項目規劃 284
14.2.2 功能結構分析 285
14.3 資料庫設計 285
14.3.1 E-R圖 285
14.3.2 數據表概要說明 287
14.3.3 主要數據表的結構 288
14.4 系統登錄模組設計 290
14.4.1 登錄功能設計 290
14.4.2 不規則登錄窗體設計 290
14.5 程式主界面的設計 294
14.5.1 創建主視窗 294
14.5.2 初始化程式主界面的initialize()方法 295
14.5.3 添加選單和工具按鈕的方法 296
14.5.4 創建Action對象的addFrameAction()方法 298
14.5.5 獲取功能窗體的getIFrame()方法 299
14.5.6 關於對話框的事件監聽器 300
14.6 基礎信息模組設計 301
14.6.1 商品信息管理模組設計 301
14.6.2 商品添加功能設計 301
14.6.3 設定組件布局位置的setupComponent()方法 304
14.6.4 商品修改與刪除功能設計 304
14.7 進貨管理模組設計 307
14.7.1 進貨單功能設計 307
14.7.2 初始化表格的initTable()方法 310
14.7.3 初始化商品下拉選擇框的initSpBox()方法 311
14.7.4 初始化進貨單窗體的initTasks類 311
14.7.5 初始化進貨票號文本框的initPiaoHao()方法 312
14.8 銷售管理模組設計 313
14.8.1 銷售單功能設計 313
14.8.2 初始化銷售單窗體的initTasks類 314
14.9 庫存管理模組設計 315
14.9.1 庫存檔點功能設計 315
14.9.2 庫存價格調整功能設計 318
14.10 查詢統計模組設計 319
14.10.1 銷售排行功能設計 319
14.10.2 執行銷售排行功能的事件監聽器 320
14.11 系統設定模組設計 321
14.11.1 操作員管理 321
14.11.2 許可權管理 323
14.12 資料庫模組 325
14.12.1 資料庫連線 325
14.12.2 獲取用戶信息的getUser()方法 326
14.12.3 添加商品信息的addSp()方法 326
14.12.4 獲取所有商品信息的getSpInfos()方法 327
14.12.5 添加入庫信息的insertRukuInfo()方法 328
14.12.6 獲取最大入庫編號的getRuKuMainMaxId()方法 329
14.12.7 更新用戶信息的updateUser()方法 329
14.13 本章小結 330
第15章 JSP入門 331
15.1 JSP技術概述 332
15.2 JSP技術特徵 332
15.2.1 跨平台 332
15.2.2 靜態內容和動態內容的分離 332
15.2.3 可重複使用的組件 333
15.2.4 沿用了JavaServlet的所有功能 333
15.2.5 預編譯 333
15.3 JSP與其他網路程式語言的比較 333
15.3.1 CGI 333
15.3.2 ASP 333
15.3.3 PHP 334
15.3.4 JSP 334
15.4 JSP的處理過程 334
15.5 Tomcat伺服器的安裝和啟動 335
15.5.1 Tomcat伺服器的安裝 335
15.5.2 Tomcat伺服器的啟動 336
15.6 開發與部署Web應用程式 336
15.6.1 MyEclipse開發Web應用程式 337
15.6.2 部署JSP程式 338
15.7 本章小結 339
第16章 JSP語法 340
16.1 了解JSP的基本構成 341
16.1.1 JSP中的指令標識 341
16.1.2 HTML標記語言 341
16.1.3 嵌入的Java代碼片段 341
16.1.4 JSP表達式 341
16.2 JSP的指令標識 341
16.2.1 使用Page指令 342
16.2.2 使用include指令 344
16.2.3 使用taglib指令 345
16.3 JSP的腳本標識 345
16.3.1 JSP表達式(Expression) 345
16.3.2 聲明標識(Declaration) 346
16.3.3 小腳本程式(Scriptlet) 347
16.4 JSP的注釋 347
16.4.1 HTML中的注釋 347
16.4.2 帶有JSP表達式的注釋 348
16.4.3 隱藏注釋 348
16.4.4 小腳本程式(Scriptlet)中的注釋 348
16.5 JSP的動作標識 350
16.5.1 包含檔案的動作jsp:include 351
16.5.2 重定向資源的動作jsp:forward 352
16.5.3 聲明使用JavaBean的動作jsp:useBean 354
16.5.4 設定JavaBean屬性值的動作jsp:setProperty 360
16.5.5 獲取JavaBean屬性值的動作jsp:getProperty 362
16.5.6 聲明使用Java外掛程式的動作jsp:plugin 362
16.6 本章小結 363
第17章 JSP的內置對象 364
17.1 JSP內置對象的概述 365
17.2 request對象 366
17.2.1 訪問請求參數 366
17.2.2 在作用域中管理屬性 367
17.2.3 獲取Cookie 368
17.2.4 訪問HTTP報頭 370
17.2.5 訪問請求行元素 370
17.2.6 訪問安全信息 371
17.2.7 訪問國際化信息 371
17.3 response對象 372
17.3.1 重定向網頁 372
17.3.2 處理HTTP檔案報頭 372
17.3.3 輸出緩衝 373
17.4 session對象 374
17.4.1 創建及獲取客戶的會話 374
17.4.2 從會話中移動指定的綁定對象 374
17.4.3 銷毀session 375
17.4.4 會話逾時的管理 375
17.4.5 session對象的套用 375
17.5 application對象 377
17.5.1 訪問應用程式初始化參數 377
17.5.2 管理應用程式環境屬性 378
17.6 out對象 379
17.6.1 管理回響緩衝 379
17.6.2 向客戶端輸出數據 379
17.7 其他內置對象 379
17.7.1 獲取會話範圍的pageContext對象 379
17.7.2 讀取web.xml配置信息的config對象 380
17.7.3 應答或請求的page對象 381
17.7.4 獲取異常信息的exception對象 382
17.8 本章小結 383
第18章 JavaBean技術 384
18.1 JavaBean概述 385
18.1.1 JavaBean技術介紹 385
18.1.2 JavaBean的種類 385
18.1.3 JavaBean的形式和要素 385
18.2 JavaBean屬性 386
18.2.1 使用Simple屬性 387
18.2.2 使用Indexed屬性 387
18.2.3 使用Bound屬性 388
18.2.4 使用Constrained屬性 388
18.3 JavaBean方法 388
18.4 JSP與JavaBean 389
18.4.1 JavaBean在JSP中的作用域 389
18.4.2 在JavaBean中連線資料庫 395
18.4.3 JavaBean的移除 398
18.5 應用程式與JavaBean 399
18.5.1 可視化編程中的JavaBean簡介 399
18.5.2 java.beans包 400
18.6 本章小結 405
第19章 Servlet技術 406
19.1 Servlet基礎 407
19.1.1 Servlet技術簡介 407
19.1.2 Servlet技術功能 407
19.1.3 Servlet技術特性 407
19.1.4 Servlet的生命周期 408
19.1.5 快速體驗Servlet程式 409
19.2 Servlet API編程常用接口和類 410
19.2.1 Servlet編程接口 410
19.2.2 HttpServlet編程類 412
19.2.3 HttpServletRequest編程接口 415
19.2.4 HttpServletResponse編程接口 416
19.3 創建與配置Servlet 416
19.3.1 Servlet的創建 416
19.3.2 Servlet的配置 417
19.4 Servlet過濾器 419
19.4.1 Servlet過濾器簡介 419
19.4.2 Servlet過濾器工作原理 420
19.4.3 Servlet過濾器編程接口 420
19.4.4 Servlet過濾器的配置 421
19.4.5 Servlet過濾器的典型實例 422
19.5 Servlet監聽器 425
19.5.1 Servlet監聽器簡介 425
19.5.2 Servlet監聽器的原理 426
19.5.3 Servlet上下文監聽 426
19.5.4 HTTP會話監聽 426
19.5.5 Servlet請求監聽 427
19.5.6 Servlet監聽器的典型套用 428
19.6 本章小結 430
第20章 部落格網站 431
20.1 網站總體分析 432
20.1.1 項目規劃 432
20.1.2 系統功能結構圖 432
20.2 資料庫設計 432
20.2.1 E-R圖 432
20.2.2 數據表概要說明 434
20.2.3 主要數據表的結構 434
20.3 網站總體架構設計 436
20.3.1 檔案架構設計 436
20.3.2 類的分布架構設計 436
20.3.3 頁面效果圖 436
20.4 系統配置 438
20.5 公共類的編寫 439
20.5.1 資料庫連線及操作類的編寫 439
20.5.2 字元串處理類的編寫 440
20.5.3 獲取系統時間類的編寫 441
20.5.4 實現分頁操作類的編寫 441
20.6 系統登錄模組設計 443
20.6.1 頁面設計 444
20.6.2 功能實現 444
20.7 用戶註冊模組設計 447
20.7.1 頁面設計 448
20.7.2 功能實現 449
20.8 文章管理模組設計 450
20.8.1 文章類型管理 450
20.8.2 發表文章 454
20.8.3 修改文章 455
20.8.4 刪除文章 457
20.9 相冊管理模組設計 457
20.9.1 查看相冊 457
20.9.2 相片上傳 459
20.10 網路日曆功能實現 462
20.11 本章小結 463
附錄 實例快速檢索 464
文摘
1.1 Java語言的產生與發展
Java語言是Sun公司於1990年開發的,當時Green項目小組的研究人員正在致力於為未來的智慧型設備開發出一種新的程式語言。由於該小組的成員James Gosling對C++語言在執行過程中的表現非常不滿,於是把自己封閉在辦公室里編寫了一種新的語言,並將其命名為Oak(Oak即Java語言的前身),這個名稱源於Gosling辦公室的窗外正好有一棵橡樹(Oal()。這時的Oak已經具備安全性、網路通信、面向對象、多執行緒等特性,是一款相當優秀的程式語言。後來,在註冊Oak商標時,發現它已經被另外一家公司註冊,因此不得不改名。取什麼名字呢,工程師們邊喝咖啡邊討論著,看看手上的咖啡,再想到印度尼西亞有一個盛產咖啡的島嶼(中文名叫爪哇),於是將其改名為Java。
隨著Internet的迅速發展,Web的套用日益廣泛,Java語言也得到了迅速發展。1994年,Gosling用Java語言開發了一個實時性較高、可靠、安全、有互動功能的新型Web瀏覽器,它不依賴於任何硬體平台和軟體平台。這種瀏覽器的名稱為HotJava,並於1995年在業界發表,引起了巨大的轟動,Java語言的地位隨之得到肯定。1995年5月23日,JDK(Java Development,Kits)1.0a2版本正式對外發表。此後,Java語言的發展非常迅速。
1.2 Java語言的特點
Java語言適用於Internet環境,是一種被廣泛使用的網路程式語言,具有簡單、面向對象、可移植、分布性、解釋器通用性、穩健、多執行緒、安全及高性能等語言特性。另外Java語言還提供了豐富的類庫,方便用戶進行自定義操作。下面將對Java語言的特點進行具體介紹。
1.簡單
Java語言的語法規則和C++語言類似。它通過提供最基本的方法完成指定的任務。但Java語言對C++語言進行了簡化和提高。例如C++語言中指針和多重繼承通常使程式變得複雜,Java語言用接口取代了多重繼承並取消了指針。Java語言還通過實現自動垃圾收集功能大大簡化了程式設計人員的記憶體管理工作。
2.面向對象
Java語言以面向對象為基礎。在Java語言中不能在類的外面定義單獨的數據和函式,所有對象都要派生於同_個基類,並共享其所有功能,即Java語言最外部的數據類型是對象,所有的元素都要通過類和對象來訪問。
3.可移植性
Java程式具有與體系結構無關的特性。這一特徵使.Java程式可以方便地移植到網路的不同計算機上。同時,Java的類庫中也實現了針對不同平台的接口,使得這些類庫可以進行移植。
4.分布性
Java語言從誕生就和網路緊密地聯繫在一
……