內容簡介
《解析Java程式設計》旨在通過實例解析的方式全面而深入地介紹Java語言的特點及其面向對象的特性,不但詳細介紹了Java語言本身,而且討論了面向對象的設計思想和編程方法、UML、圖形用戶界面的編程方法、網路和資料庫程式的編程方法、執行緒的使用等實用開發技術。
全書共分10章,第1、2章是基礎部分,介紹了面向對象的基本概念和相關技術,並對Java語言進行了概述。第3~5章是核心部分,主要介紹Java面向對象技術,圍繞抽象性、封裝性、繼承性、多態性以及I/O、異常等內容由淺入深地展開討論。第6~10章是套用部分,主要介紹運用Java語言及其類庫在J2SE平台下進行圖形用戶界面編程、網路編程、資料庫編程、編寫常用數據結構等內容。
《解析Java程式設計》層次清晰、內容全面、例題豐富、實用性強,全書基礎性和實用性並重。《解析Java程式設計》不僅能使讀者掌握Java語言,而且能夠讓讀者對現實世界中較簡單的問題及其解決方法用計算機語言進行描述。《解析Java程式設計》適合作為大專院校計算機相關專業的教材及自學Java語言的參考書,也可供計算機技術人員參閱。
目錄
第Ⅰ部分 Java EE設計模式介紹
第1章 設計模式概覽 3
1.1 何為設計模式 4
1.1.1 如何檢測模式,為何需要模式 6
1.1.2 現實世界中的模式 6
1.2 設計模式基礎 8
1.3 企業模式 8
1.3.1 從Java到企業級Java 9
1.3.2 企業Java模式的出現 10
1.3.3 設計模式與企業模式 11
1.3.4 當傳統設計模式遇到Java EE 12
1.3.5 當模式變成反模式 13
1.4 小結 14
1.5 相關資料 14
第2章 Java EE基礎 17
2.1 多層架構 19
2.2 客戶端層 20
2.3 中間層 21
2.3.1 Web層 21
2.3.2 業務層 22
2.4 EIS層 23
2.5 Java EE伺服器 24
2.6 Java EE Web Profile 25
2.7 Java EE核心原則 25
2.8 約定優於配置 26
2.9 上下文與依賴注入 26
2.10 攔截器 28
2.11 小結 30
2.12 本章練習 30
第Ⅱ部分 實現Java EE設計模式
第3章 門面模式 33
3.1 何為門面 34
3.2 使用普通代碼實現門面模式 36
3.3 使用Java EE實現門面模式 38
3.3.1 使用無狀態Bean實現門面 38
3.3.2 使用有狀態Bean實現門面 41
3.4 何時以及何處該使用門面模式 42
3.5 小結 43
3.6 本章練習 43
3.7 相關資料 43
第4章 單例模式 45
4.1 何為單例? 46
4.1.1 單例模式類圖 47
4.1.2 使用普通代碼實現單例模式 48
4.2 使用Java EE實現單例模式 53
4.2.1 單例Bean 53
4.2.2 在啟動時使用單例 54
4.2.3 確定啟動順序 56
4.2.4 管理並發 59
4.3 何處以及何時該使用單例模式 63
4.4 小結 63
4.5 本章練習 64
4.6 相關資料 65
第5章 依賴注入與CDI 67
5.1 何為依賴注入? 68
5.2 使用普通代碼實現DI 69
5.3 使用Java EE實現DI 73
5.3.1 @Named註解 75
5.3.2 上下文與依賴注入(CDI) 76
5.3.3 CDI與EJB 77
5.3.4 CDI Bean 77
5.3.5 @Inject註解 79
5.3.6 上下文與作用域 79
5.3.7 命名與EL 80
5.3.8 用於Backing JSF的CDI Bean 81
5.3.9 限定符 81
5.3.10 Alternatives 82
5.3.11 Stereotypes 83
5.3.12 通過CDI實現的其他模式 84
5.4 小結 84
5.5 本章練習 85
5.6 相關資料 85
第6章 工廠模式 87
6.1 何為工廠? 88
6.2 工廠方法 89
6.3 抽象工廠 94
6.4 使用Java EE實現工廠模式 96
6.5 何處以及何時該使用工廠模式 110
6.6 小結 111
6.7 本章練習 111
6.8 相關資料 111
第7章 裝飾模式 113
7.1 何為裝飾器? 114
7.2 使用普通代碼實現裝飾模式 116
7.3 使用Java EE實現裝飾模式 121
7.4 何處以及何時該使用裝飾模式 129
7.5 小結 130
7.6 本章練習 130
7.7 相關資料 131
第8章 面向方面編程(攔截器) 133
8.1 何為面向方面編程? 134
8.2 使用普通代碼實現AOP 137
8.3 Java EE中的方面—— 攔截器 140
8.3.1 攔截器生命周期 145
8.3.2 默認級別的攔截器 146
8.3.3 攔截器順序 147
8.3.4 CDI攔截器 150
8.4 何處以及何時該使用攔截器 153
8.5 小結 154
8.6 相關資料 155
第9章 異步 157
9.1 何為異步編程 158
9.2 使用普通代碼實現異步模式 161
9.3 Java EE中的異步編程 164
9.3.1 異步Bean 164
9.3.2 異步Servlet 167
9.4 何處以及何時該使用異步編程 172
9.5 小結 174
9.6 本章練習 174
9.7 相關資料 175
……
第10章 定時器服務 177
第11章 觀察者模式 193
第12章 數據訪問模式 213
第13章 REST風格的Web Service 229
第14章 模型、視圖與控制器模式 255
第15章 Java EE中的其他模式 271
第Ⅲ部分 總 結
第16章 設計模式:好處、壞處與醜陋之處 291
3.5.1靜態成員變數 87
3.5.2靜態成員方法 89
3.6基本的輸入輸出 90
3.7問題的解決 92
本章小結 99
習題 99
第4章繼承和多態 103
4.1問題的提出與分析 103
4.2類的繼承 104
4.2.1子類的定義 104
4.2.2子類的構造方法 106
4.2.3方法的覆蓋和成員變數的隱藏 109
4.2.4子類對象和父類對象間的轉換 112
4.3抽象類和接口 115
4.3.1抽象類的定義 115
4.3.2什麼是接口 117
4.3.3接口的定義 118
4.3.4接口的實現 119
4.4final類和final方法 122
4.5多態 122
4.6問題的實現 127
4.6.1定義商品類層次 127
4.6.2定義職工類層次 129
4.6.3商品列表類的實現 131
4.6.4顧客類層次的實現 133
4.6.5銷售事件類和銷售事件列表類的實現 134
4.6.6類層次功能的測試 136
4.6.7功能的進一步擴充 137
本章小結 137
習題 138
第5章輸入輸出流和異常 141
5.1問題的提出與分析 141
5.2輸入輸出流 143
5.2.1流的概念 143
5.2.2輸入輸出流類層次 144
5.2.3位元組流 151
5.2.4字元流 157
5.3異常 160
5.3.1異常的概念 161
5.3.2異常的類層次 162
5.3.3捕獲及處理異常 164
5.3.4自定義異常 168
5.3.5聲明異常和拋出異常 169
5.4問題的實現 170
本章小結 175
習題 175
第6章圖形用戶界面設計 178
6.1問題的提出與分析 178
6.2創建圖形用戶界面 180
6.2.1AWT與Swing概述 180
6.2.2容器與組件 180
6.2.3布局管理器 188
6.3事件處理 190
6.3.1JDK的事件處理模型 190
6.3.2事件監聽器 191
6.3.3事件適配器 194
6.3.4內部類 194
6.4繪製圖形 195
6.5問題的實現 196
6.5.1界面框架的實現 197
6.5.2滑鼠事件的回響及圖形畫筆粗細設定 202
6.5.3圖形的保存 205
本章小結 207
習題 208
第7章網路編程 211
7.1問題的提出與分析 211
7.2網路的基本概念 212
7.2.1TCP/IP簡介 212
7.2.2Socket接口 214
7.2.3客戶端/伺服器模式 215
7.3流套接字編程 215
7.3.1伺服器端程式的實現 216
7.3.2客戶端程式的實現 219
7.3.3編程模型的總結 221
7.4數據報套接字技術 222
7.4.1伺服器端程式的實現 223
7.4.2客戶端程式的實現 225
7.4.3編程模型的總結 226
7.5執行緒 227
7.5.1執行緒的概念 227
7.5.2執行緒的創建 228
7.5.3執行緒的控制 230
7.5.4流套接字多執行緒伺服器的實現 231
7.5.5數據報套接字多執行緒伺服器的實現 233
7.5.6執行緒的同步 235
本章小結 238
習題 238
第8章Applet 240
8.1問題的提出與分析 240
8.2Applet簡介 241
8.2.1什麼是Applet 241
8.2.2一個簡單的Applet程式 242
8.3Applet的生命周期 244
8.4其他常用的方法 247
8.5Applet的運行 251
8.5.1HTML與Applet 251
8.5.2在瀏覽器中運行Applet程式 252
8.5.3在appletviewer中運行Applet程式 253
8.5.4運行Applet的安全性 254
8.6問題的實現 254
8.6.1定義Applet的派生類 254
8.6.2實現Applet周期中的方法 255
8.6.3執行緒的實現 257
8.6.4paint方法的實現 258
8.6.5滑鼠事件處理 259
本章小結 262
習題 262
第9章JDBC與資料庫 265
9.1問題的提出與分析 265
9.2資料庫基礎 266
9.2.1資料庫簡介 267
9.2.2關係資料庫 267
9.2.3SQL簡介 268
9.3JDBC簡介 270
9.3.1引入JDBC的背景及其驅動模型 271
9.3.2通過JDBC連線資料庫 272
9.4問題的實現 275
9.4.1建立資料庫 275
9.4.2連線資料庫 275
9.4.3資料庫操作 277
本章小結 285
習題 285
第10章常用數據結構的實現 287
10.1數據結構簡介 287
10.2單鍊表 287
10.2.1單鍊表的實現 288
10.2.2單鍊表的套用(約瑟夫問題的求解) 294
10.3棧 295
10.3.1棧的實現 296
10.3.2棧的套用(數的進制的轉換) 297
10.4佇列 298
10.4.1佇列的實現 298
10.4.2佇列的套用(列印楊輝三角形) 299
本章小結 301
習題 301
附錄AJava語法摘要 302
A.1詞法規則 302
A.2數據類型 304