第Ⅰ部分 基 礎 知 識
第1章 Linux環(huán)境 3
1.1 本章內容 3
1.2 命令行 3
1.3 Linux的基本概念和命令 4
1.3.1 重定向I/O 5
1.3.2 ls命令 7
1.3.3 文件名 7
1.3.4 權限 8
1.3.5 文件復制 8
1.3.6 通配符 10
1.3.7 文件內容 11
1.3.8 grep命令 13
1.3.9 find命令 14
1.3.10 再論shell 15
1.3.11 tar和zip命令 19
1.3.12 man命令 20
1.4 本章小結 21
1.5 內容擴展 21
1.6 參考文獻 21
第2章 編輯器 22
2.1 概述 22
2.2 了解vi 22
2.2.1 退出 26
2.2.2 查找和替換 27
2.2.3 正則表達式 28
2.2.4 向右縮進:.exrc 29
2.3 品種繁多的編輯器 30
2.3.1 sed或stream edtor 31
2.3.2 簡單的圖形編輯器 31
2.4 本章小結 32
2.5 有關正則表達式的補充說明 33
2.6 參考文獻 33
第3章 Java介紹 34
3.1 本章內容 34
3.2 基本的語言元素 34
3.2.1 數(shù)值類型 35
3.2.2 對象類型 38
3.2.3 語句 43
3.2.4 Java風格的錯誤處理 49
3.2.5 print()、println()和printf() 52
3.3 使用Java API 54
3.3.1 package語句 55
3.3.2 import語句 56
3.4 封裝、繼承及多態(tài)性 57
3.4.1 封裝 57
3.4.2 繼承 57
3.4.3 多態(tài)性 60
3.5 模板 62
3.6 virtually和final關鍵字 63
3.7 一個簡單的應用程序 63
3.8 本章小結 65
3.9 內容擴展 65
3.10 參考文獻 65
3.11 練習 66
第4章 執(zhí)行語境 67
4.1 本章內容 67
4.2 簡單的開始 67
4.2.1 命令行參數(shù) 67
4.2.2 單元測試 69
4.3 System類 69
4.3.1 Java和標準I/O 69
4.3.2 環(huán)境變量 70
4.3.3 Java和環(huán)境變量 71
4.4 Properties類 73
4.5 Runtime類 75
4.5.1 exec() 75
4.5.2 可移植性 76
4.6 本章小結 76
4.7 內容擴展 77
4.8 參考文獻 77
第5章 Sun Microsystem Java
軟件開發(fā)包 78
5.1 本章內容 78
5.2 建議 78
5.3 Java編譯器 79
5.3.1 編譯器行為、默認值和
環(huán)境變量 79
5.3.2 javac選項 81
5.4 Java運行庫引擎 82
5.4.1 基礎 82
5.4.2 java選項 83
5.5 程序文檔 83
5.5.1 運行javadoc 83
5.5.2 javadoc命令行選項 85
5.5.3 javadoc注釋 87
5.6 applet 89
5.7 本地化 89
5.8 RMI 93
5.8.1 RMI簡介 93
5.8.2 rmic工具 97
5.8.3 rmiregistry工具 98
5.8.4 設置服務程序和客戶程序 98
5.8.5 RMI概要 100
5.9 Java調試器 100
5.10 Java反編譯器 107
5.11 綁定Java程序 110
5.11.1 部署應用程序 110
5.11.2 基本jar操作 112
5.12 其他工具軟件 113
5.13 本章小結 114
5.14 內容擴展 114
5.15 參考文獻 114
第6章 Linux下的IBM開發(fā)工具包,
Java 2技術版 115
6.1 本章內容 115
6.2 多個Java SDK共存 115
6.2.1 鏈接 115
6.2.2 利用符號鏈接切換
Java版本 119
6.3 IBM JDK與Sun JDK的
不同之處 120
6.3.1 性能 120
6.3.2 命令上的不同 120
6.3.3 IBM類 121
6.4 “_g”的用途 121
6.5 本章小結 121
6.6 內容擴展 121
6.7 參考文獻 121
第7章 GNU編譯器 122
7.1 本章內容 122
7.2 GNU的發(fā)展 122
7.3 GNU編譯器集合 122
7.4 用gcj編譯簡單應用程序 123
7.4.1 用gcj編譯FetchURL 124
7.4.2 編譯多類程序 125
7.5 選項和開關 125
7.6 使用gcj的理由 126
7.7 不使用gcj的理由 127
7.8 本章小結 127
7.9 內容擴展 127
7.10 參考文獻 127
第8章 CVS 129
8.1 本章內容 129
8.2 源代碼控制的原因和方法 130
8.2.1 安裝 132
8.2.2 導入 132
8.2.3 一般用法 134
8.2.4 更新 137
8.2.5 合并 137
8.2.6 日志 138
8.2.7 CVS狀態(tài) 140
8.2.8 cvs tag 140
8.2.9 分支標簽 141
8.2.10 cvs export命令 143
8.2.11 效率 143
8.3 jCVS 143
8.4 本章小結 145
8.5 內容擴展 145
8.6 參考文獻 146
第9章 ant簡介 147
9.1 本章內容 147
9.2 不同創(chuàng)建工具的需求 147
9.3 下載并安裝ant 148
9.4 ant buildfile示例 150
9.4.1 XML 150
9.4.2 buildfile標簽 151
9.4.3 實際的buildfile 156
9.5 本章小結 158
9.6 內容擴展 159
9.7 參考文獻 159
第10章 集成開發(fā)環(huán)境 160
10.1 本章內容 160
10.2 NetBeans 161
10.2.1 NetBeans的發(fā)展史 161
10.2.2 安裝NetBeans 161
10.2.3 熟悉NetBeans 163
10.2.4 與CVS集成 166
10.2.5 集成ant 168
10.2.6 其他附加工具 169
10.3 SunONE Studio公共版 170
10.4 Eclipse 170
10.4.1 選擇和安裝Eclipse 170
10.4.2 在新項目里使用Eclipse 172
10.4.3 在已有的項目上使用
Eclipse 174
10.4.4 使用Eclipse 174
10.5 本章小結 174
10.6 內容擴展 175
10.7 參考文獻 175
第Ⅱ部分 開發(fā)業(yè)務邏輯
第11章 平衡的掌握 179
11.1 本章內容 179
11.2 需求 179
11.3 如何開發(fā)軟件 180
11.4 如何產生好的需求 181
11.5 需求詢問的對象 182
11.6 預算應用程序的需求 182
11.6.1 周一早晨10點 182
11.6.2 回到寫字臺 184
11.7 文檔制作、原型設計和項目
干系人的支持認同 184
11.7.1 文檔制作 184
11.7.2 項目干系人的支持認同 185
11.7.3 原型制作 186
11.8 本章小結 186
11.9 內容擴展 187
11.10 參考文獻 187
11.11 練習 187
第12章 分析與設計:尋找對象 188
12.1 本章內容 188
12.2 起始工作 188
12.3 使用CRC卡 188
12.4 確定對象 189
12.5 尋找方法和屬性 190
12.6 本質與非本質 191
12.7 分析停頓 193
12.8 真實的軟件工程 193
12.9 核心類 193
12.10 本章小結 197
12.11 內容擴展 197
12.12 參考文獻 197
12.13 練習 197
第13章 JUnit:自動單元測試 198
13.1 本章內容 198
13.2 JUnit 198
13.3 設計,再測試,再編碼 198
13.4 安裝并運行JUnit 200
13.4.1 下載和解壓縮 200
13.4.2 使用JUnit 202
13.5 編寫測試案例 203
13.5.1 JUnit論斷 206
13.5.2 運行測試案例 207
13.6 運行一組測試程序 208
13.7 本章小結 209
13.8 內容擴展 210
13.9 參考文獻 210
13.10 練習 210
第14章 數(shù)據(jù)存儲 211
14.1 本章內容 211
14.2 數(shù)據(jù)庫設計 211
14.3 持久性 211
14.4 獨立性 211
14.5 Oracle、PostgreSQL和
MySQL 212
14.5.1 MySQL 212
14.5.2 PostgreSQL 212
14.5.3 Oracle 212
14.5.4 選擇標準 213
14.6 在代碼中設置數(shù)據(jù)庫 213
14.7 持久性 214
14.8 持久性并非設計數(shù)據(jù)庫表
的唯一考慮 215
14.9 設置PostgreSQL 215
14.9.1 安裝PostgreSQL 215
14.9.2 創(chuàng)建postgres用戶 216
14.9.3 創(chuàng)建數(shù)據(jù)庫 216
14.9.4 JDBC 217
14.10 本章小結 218
14.11 內容擴展 218
14.12 參考文獻 218
14.13 練習 218
第15章 數(shù)據(jù)訪問:JDBC 219
15.1 本章內容 219
15.2 JDBC介紹 219
15.3 連接 222
15.4 查詢數(shù)據(jù) 223
15.5 查詢結果 224
15.6 更新、插入和刪除數(shù)據(jù) 225
15.7 本章小結 225
15.8 內容擴展 225
15.9 參考文獻 226
15.10 練習 226
第Ⅲ部分 開 發(fā) GUI
第16章 GUI設計 229
16.1 本章內容 229
16.2 一個簡單的Swing程序 229
16.3 Swing示例 230
16.4 基本的Swing對象 231
16.5 布局管理器 233
16.6 行為、監(jiān)聽器與事件 233
16.7 設計GUI 234
16.7.1 概況 235
16.7.2 創(chuàng)建塊 236
16.8 本章小結 252
16.9 內容擴展 252
16.10 參考文獻 253
16.11 練習 253
第17章 SWT 254
17.1 本章內容 254
17.2 IBM SWT工具包 254
17.2.1 另一種GUI工具包 254
17.2.2 介紹SWT的原因? 255
17.2.3 移植性 255
17.2.4 本章其他內容 255
17.2.5 SWT:貼近硬件 256
17.2.6 “Hello, world” SWT
類型 256
17.3 移植BudgetPro到SWT 258
17.3.1 第1步:轉換類成員 260
17.3.2 第2步:轉換
main()方法 262
17.3.3 第3步:轉換GUI build()
和init()方法 262
17.3.4 完成BudgetPro類
的轉換 265
17.3.5 完成應用程序的轉換 265
17.3.6 SWT和Swing的比較 265
17.4 SWT和gcj 266
17.5 本章小結 267
17.6 內容擴展 267
17.7 參考文獻 267
17.8 練習 268
第Ⅳ部分 開發(fā)Web接口
第18章 servlet 271
18.1 本章內容 271
18.2 servlet 271
18.3 深入理解與servlet的交互 272
18.4 如何編寫servlet 274
18.5 輸入與輸出 277
18.6 狀態(tài)問題:cookie、隱藏
變量以及“后退”按鈕 278
18.7 設計BudgetPro servlet 280
18.7.1 原型 280
18.7.2 設計 280
18.8 本章小結 283
18.9 內容擴展 283
18.10 參考文獻 283
18.11 練習 283
第19章 JSP 285
19.1 本章內容 285
19.2 JSP 285
19.3 如何編寫JSP應用程序 287
19.3.1 scriptlet 287
19.3.2 聲明 289
19.3.3 表達式 289
19.3.4 指令 291
19.3.5 新語法 292
19.3.6 JSP中的JavaBeans 292
19.3.7 標記庫 294
19.4 在BudgetPro應用程序
中使用JSP 295
19.5 本章小結 296
19.6 內容擴展 296
19.7 參考文獻 296
19.8 練習 297
第20章 開源代碼的Web應用
程序服務器 298
20.1 本章內容 298
20.2 下載JBoss 298
20.3 軟件系統(tǒng)的管理 299
20.3.1 無需root權限安裝軟件 299
20.3.2 出色的粒度訪問控制 302
20.4 安裝JBoss 302
20.5 開源應用程序服務器與系統(tǒng)
的集成 303
20.5.1 System V的init系統(tǒng) 303
20.5.2 RedHat/Fedora的
chkconfig程序 308
20.5.3 其他發(fā)行版 312
20.5.4 IDE集成 312
20.6 部署 312
20.7 Apache Geronimo 314
20.8 安裝Geronimo 314
20.9 運行Geronimo服務器 315
20.10 本章小結 315
20.11 內容擴展 316
20.12 參考文獻 316
第Ⅴ部分 開發(fā)企業(yè)級可
擴展軟件
第21章 Enterprise JavaBeans
介紹 319
21.1 本章內容 319
21.2 EJB擴展 319
21.2.1 EJB概念 319
21.2.2 bean類型 321
21.2.3 EJB的內幕 324
21.3 JNDI介紹 324
21.3.1 命名以及目錄系統(tǒng)
的概念 324
21.3.2 通用目錄服務 325
21.3.3 JNDI 327
21.3.4 通過JBoss使用JNDI 330
21.4 本章小結 330
21.5 內容擴展 330
21.6 參考文獻 330
第22章 建立EJB 331
22.1 本章內容 331
22.2 了解bean 331
22.2.1 SessionBean 332
22.2.2 EJBObject 334
22.2.3 EJBHome 335
22.2.4 會話bean、遠程接口
以及home接口小結 335
22.2.5 EJBLocalHome與
EJBLocalObject 335
22.2.6 編譯bean 336
22.3 本章小結 337
22.4 內容擴展 338
22.5 參考文獻 339
第23章 部署EJB 339
23.1 本章內容 339
23.2 Enterprise打包與部署 339
23.2.1 EJB-JAR文件的內容 341
23.2.2 使用bean 343
23.2.3 打包servlet 344
23.3 部署EAR 346
23.3.1 JBoss 346
23.3.2 Geronimo 346
23.4 維護分布式應用程序 346
23.4.1 And與 CVS 347
23.4.2 XDoclet 348
23.5 抽象傳統(tǒng)的應用程序 348
23.6 本章小結 348
23.7 內容擴展 348
23.8 參考文獻 349
第24章 臨別贈言 350
24.1 未來如此光明,但我有些
迷惑 350
24.2 歡迎您的參與 350
24.3 到來的革命 350
24.4 內容擴展 351
24.5 參考文獻 351
附錄A ASCII圖表 353
附錄B BudgetPro的Java
Swing GUI 355
附錄C GNU通用公共許可證 365