第1章 Java程序設計風格 1
1.1 Java文件名與文件組織結構 2
1.2 Java文件注釋頭 3
1.3 包的聲明與引用 4
1.4 類與接口的聲明 6
1.5 Java源文件編排格式 7
1.5.1 代碼行長度與折行規(guī)則 7
1.6 程序注釋 9
1.7 變量的聲明初始化與放置 11
1.7.1 變量聲明 11
1.7.2 變量初始化 12
1.7.3 變量放置 12
1.8 Java程序語句編寫規(guī)則 13
1.8.1 簡單語句 13
1.8.2 復合語句 14
1.9 空格與空行的應用規(guī)則 18
1.9.1 空格的應用規(guī)則 18
1.9.2 空行的應用規(guī)則 19
1.10 方法、變量與常量的命名規(guī)則 21
1.10.1 方法的命名規(guī)則 21
1.10.2 變量的命名規(guī)則 21
1.10.3 常量的命名規(guī)則 22
1.11 Java編程實踐 22
1.11.1 訪問實例與類中變量的規(guī)則 22
1.11.2 引用類中的靜態(tài)變量與方法的規(guī)則 22
1.11.3 變量賦值規(guī)則 23
1.11.4 綜合規(guī)則 23
小結 24
第2章 內存管理 26
2.1 垃圾回收 26
2.1.1 堆內存 28
2.2 JVM中對象的生命周期 29
2.2.1 創(chuàng)建階段 29
2.2.2 應用階段 32
2.2.3 不可視階段 34
2.2.4 不可到達階段 35
2.2.5 可收集階段、終結階段與釋放階段 35
2.3 Java中的析構方法finalize 35
2.4 數組的創(chuàng)建 39
2.5 共享靜態(tài)變量存儲空間 40
2.6 對象重用與GC 42
2.7 瞬間值 45
2.8 不要提前創(chuàng)建對象 46
2.9 JVM內存參數調優(yōu) 47
2.10 Java程序設計中有關內存管理的其他經驗 51
小結 52
第3章 表達式、語句與保留字 53
3.1 表達式 53
3.1.1 括號規(guī)則 54
3.1.2 簡單規(guī)則 54
3.1.3 單一意圖規(guī)則 54
3.1.4 方法返回值比較規(guī)則 55
3.1.5 字符串比較規(guī)則 55
3.2 Java語言中的保留字 57
3.2.1 靜態(tài)的(static) 58
3.2.2 超類(super) 61
3.2.3 最終的(final) 61
3.2.4 同步(synchronized) 66
3.2.5 實例識別(instanceof) 68
3.3 判斷語句與循環(huán)語句 69
3.3.1 判斷語句 69
3.3.2 循環(huán)語句 70
3.4 正則表達式 76
小結 77
第4章 Java核心類與性能優(yōu)化 79
4.1 散列表類與性能優(yōu)化 79
4.1.1 線程同步散列表類 79
4.1.2 設置ArrayList初始化容量 84
4.1.3 ArrayList與LinkedList 85
4.2 String類與性能優(yōu)化 88
4.2.1 字符串累加與性能優(yōu)化 88
4.2.2 字符串的length()方法與性能優(yōu)化 91
4.2.3 toCharArray()方法與性能優(yōu)化 93
4.2.4 字符串轉化為數字 94
4.3 系統(tǒng)I/O類 95
4.3.1 Java語言中輸入與輸出流 95
4.3.2 通過系統(tǒng)緩沖流類提高I/O操作效率 97
4.3.3 通過自定制緩沖區(qū)提高I/O操作效率 100
4.3.4 通過壓縮流提高I/O操作效率 104
4.4 其他 107
4.4.1 數據格式化與性能優(yōu)化 107
4.4.2 獲取文件信息與性能優(yōu)化 109
小結 110
第5章 JNI程序設計與性能優(yōu)化 111
5.1 JNI技術架構 111
5.2 創(chuàng)建帶有本地方法的Java應用 112
5.3 創(chuàng)建C端代碼 114
5.3.1 創(chuàng)建C端代碼頭文件 114
5.3.2 創(chuàng)建C端代碼主文件 115
5.4 JNI技術中數據類型與處理方法 117
5.4.1 JNI技術中的本地數據類型 118
5.4.2 訪問JNI本地數據類型的方法 120
5.4.3 在JNI本地方法中訪問數組 122
5.4.4 JNI中的主要方法 126
5.5 JNI中的重要技術 128
5.5.1 局部引用與全局引用 128
5.5.2 處理本地方法引起的Java錯誤 131
5.5.3 線程與本地方法 133
5.6 JNI數學計算與性能優(yōu)化 134
5.7 處理好JNI中的中文問題 134
小結 137
第6章 類與接口 139
6.1 類的構造器 139
6.1.1 構造器編寫規(guī)則 141
6.2 類的繼承規(guī)則 147
6.2.1 單線繼承規(guī)則 147
6.2.2 包內部繼承規(guī)則 149
6.2.3 邏輯包含繼承規(guī)則 150
6.3 抽象類與接口 152
6.4 繼承與組合的應用時機 154
6.5 接口與抽象類的應用時機 157
6.6 內部類 159
6.7 與性能相關的建議與經驗 162
小結 162
第7章 JSP與Servlet性能優(yōu)化 163
7.1 提升JSP應用性能 163
7.1.1 優(yōu)化jspInit()方法 164
7.1.2 通過優(yōu)化_jspService()方法提高系統(tǒng)性能 167
7.1.3 JSP高級知識 174
7.2 提升Servlet應用性能 175
7.2.1 提高Servlet應用性能的七個方法 175
7.2.2 合理緩沖靜態(tài)數據與動態(tài)數據 177
7.2.3 改善Servlet應用性能的方法 178
7.2.4 Filter Servlet與Listener Servlet 179
小結 185
第8章 開發(fā)高性能的EJB應用 186
8.1 采用EJB技術的必要性 186
8.1.1 EJB技術的優(yōu)勢特性 186
8.1.2 EJB技術體系具有清晰的架構層次 186
8.1.3 EJB與傳統(tǒng)Bean相比的性能優(yōu)勢 188
8.2 EJB的類型 189
8.2.1 EJB的生命周期 190
8.2.2 三種EJB的特點與適用場合 194
8.2.3 本地EJB與遠程EJB的性能比較 196
8.2.4 有狀態(tài)會話EJB與HttpSession 197
8.3 優(yōu)化無狀態(tài)會話EJB性能 198
8.3.1 如何控制無狀態(tài)會話EJB的生命周期 198
8.3.2 通過調節(jié)無狀態(tài)會話EJB實例池的大小來優(yōu)化系統(tǒng)性能 199
8.3.3 無狀態(tài)會話EJB資源的緩沖與釋放 200
8.4 優(yōu)化有狀態(tài)會話EJB性能 201
8.4.1 控制有狀態(tài)會話EJB生命周期 201
8.4.2 優(yōu)化有狀態(tài)會話EJB的主要途徑 202
8.5 優(yōu)化實體EJB的性能 203
8.5.1 如何控制實體EJB的生命周期 203
8.5.2 通過調節(jié)實體EJB實例池的大小來優(yōu)化系統(tǒng)性能 205
8.5.3 控制好實體EJB中的事務 206
8.5.4 提高實體EJB應用性能的其他知識 211
8.6 優(yōu)化消息EJB性能 214
8.6.1 如何控制消息EJB的生命周期 214
8.6.2 如何緩存釋放系統(tǒng)資源 215
8.7 幾種EJB的結合應用規(guī)則 216
8.8 提高EJB應用性能的其他途徑 217
小結 219
第9章 JMS性能優(yōu)化 220
9.1 JMS消息收發(fā)模式及其各自適用場合 222
9.2 發(fā)送與接收JMS消息 224
9.3 優(yōu)化JMS中的會話對象 228
9.4 優(yōu)化連接對象 230
9.5 優(yōu)化消息目的地Destination及消息生產者與消費者 232
9.6 優(yōu)化消息對象及合理使用事務機制 237
9.7 影響JMS性能的其他因素 238
小結 241
第10章 JDBC與性能優(yōu)化 242
10.1 選擇最優(yōu)的驅動程序優(yōu)化應用性能 244
10.2 優(yōu)化JDBC連接 245
10.2.1 設置合適的預取行值 246
10.2.2 采用連接池技術 247
10.2.3 合理應用事務 248
10.2.4 選擇合適的事務隔離層與及時關閉連接 250
10.3 優(yōu)化Statement對象 252
10.4 優(yōu)化ResultSet對象 255
10.4.1 通過緩沖數據行提高系統(tǒng)性能 255
10.4.2 通過設置合適的處理數據行的方向提高系統(tǒng)性能 256
10.4.3 通過采用合適的getXXX()方法提高系統(tǒng)性能 258
小結 259
第11章 軟件結構、設計模式與性能優(yōu)化 260
11.1 模式簡介 260
11.2 常用模式的Java實現與結構優(yōu)化 261
11.2.1 單態(tài)/單件模式的結構優(yōu)化 262
11.2.2 抽象工廠模式的結構優(yōu)化 265
11.2.3 適配器模式的結構優(yōu)化 271
11.2.4 代理模式的結構優(yōu)化 274
11.2.5 橋接模式的結構優(yōu)化 277
11.2.6 命令模式的結構優(yōu)化 280
11.2.7 觀察者模式的結構優(yōu)化 283
11.2.8 職責鏈模式的結構優(yōu)化 287
11.2.9 中介者模式的結構優(yōu)化 291
11.2.10 訪問者模式的結構優(yōu)化 296
11.2.11 任務分配中心模式 299
11.3 J2EE中的模式與性能優(yōu)化 306
11.3.1 服務定位模式與性能優(yōu)化 306
11.3.2 會話門面模式與性能優(yōu)化 310
11.3.3 消息門面模式與性能優(yōu)化 311
11.3.4 返回值打包模式與性能優(yōu)化 313
11.3.5 返回值包裝工廠模式與性能優(yōu)化 315
11.3.6 值列表處理器模式與性能優(yōu)化 316
11.3.7 復合實體模式與性能優(yōu)化 318
小結 319
附錄A Together工具的使用簡介 320
附錄B J2SE 5.0的新特性與性能的提升 334
附錄C 編排代碼的精美工具JxBeauty 365