內容簡介
本書通過豐富、完整、富有代表性的實例,展示了如何提升java套用性能,並且給出了最佳化前與最佳化後的java應用程式的性能差別,以實際的實例與數字告訴你,為什麼不可以這么做,應該怎么做,深入分析了影響java應用程式性能的根本原因。本書不是教你怎樣使用java語言開發應用程式,而是教你怎樣才能開發出更高效、更優秀的java應用程式。書中每一個例子都經過了作者嚴格的驗證。
本書適合於所有想編寫更高效、完美java應用程式的開發人員閱讀。
作者
林勝利,河北工業大學計算機科學專業學士。8年軟體行業從業經驗,目前在Sybase中國北京研發中心工作,主要從事與Java技術(
J2SE J2EE J2ME),系統架構設計、設計模式以及UML建模等相關的套用開發與研究工作,對Java技術體系有深入的研究與認知。先後主編並出版了5本相關技術著作,廣受讀者好評。.
作者對J2SE核心技術,J2EE體系結構及相關技術,J2ME體系結構及相關技術等有豐富的實戰經驗。對JVM的運行機制,記憶體管理機制以及各種Java編程中的最佳化技術有深入的理解
目錄
第1章 java程式設計風格
1.1 java檔案名稱與檔案組織結構
1.2 java檔案注釋頭
1.3 包的聲明與引用
1.4 類與接口的聲明
1.5 java源檔案編排格式
代碼行長度與折行規則
1.6 程式注釋
1.7 變數的聲明初始化與放置
1.7.1 變數聲明
1.7.2 變數初始化
1.7.3 變數放置
1.8 java程式語句編寫規則
1.8.1 簡單語句
1.8.2 複合語句
1.9 空格與空行的套用規則
1.9.1 空格的套用規則
1.9.2 空行的套用規則
1.10 方法、變數與常量的命名規則
1.10.1 方法的命名規則
. 1.10.2 變數的命名規則
1.10.3 常量的命名規則
1.11 java編程實踐
1.11.1 訪問實例與類中變數的規則
1.11.2 引用類中的靜態變數與方法的規則
1.11.3 變數賦值規則
1.11.4 綜合規則
小結
第2章 記憶體管理
2.1 垃圾回收
堆記憶體
2.2 jvm中對象的生命周期
2.2.1 創建階段
2.2.2 套用階段
2.2.3 不可視階段
2.2.4 不可到達階段
2.2.5 可收集階段、終結階段與釋放階段
2.4 數組的創建
2.5 共享靜態變數存儲空間
2.6 對象重用與gc
2.7 瞬間值
2.8 不要提前創建對象
2.9 jvm記憶體參數調優
2.10 java程式設計中有關記憶體管理的其他經驗
小結
第3章 表達式、語句與保留字
3.1 表達式
3.1.1 括弧規則
3.1.2 簡單規則
3.1.3 單一意圖規則
3.1.4 方法返回值比較規則
3.1.5 字元串比較規則
3.2 java語言中的保留字
3.2.1 靜態的(static)
3.2.3 最終的(final)
3.2.5 實例識別(instanceof)
3.3 判斷語句與循環語句
3.3.1 判斷語句
3.3.2 循環語句
3.4 正則表達式
小結
第4章 java核心類與性能最佳化
4.1 散列表類與性能最佳化
4.1.1 執行緒同步散列表類
4.1.2 設定arraylist初始化容量
4.1.3 arraylist與linkedlist
4.2 string類與性能最佳化
4.2.1 字元串累加與性能最佳化
4.2.2 字元串的length()方法與性能最佳化
4.2.3 tochararray()方法與性能最佳化
4.2.4 字元串轉化為數字
4.3 系統i/o類
4.3.1 java語言中輸入/輸出流
4.3.2 通過系統緩衝流類提高i/o操作效率
4.3.3 通過自定製緩衝區提高i/o操作效率
4.3.4 通過壓縮流提高i/o操作效率
4.3.5 通過非阻塞i/o最佳化套用性能
4.4 其他 104
4.4.1 數據格式化與性能最佳化
4.4.2 獲取檔案信息與性能最佳化
小結
第5章 jni程式設計與性能最佳化
5.1 jni技術架構
5.2 創建帶有本地方法的java套用
5.3 創建c端代碼
5.3.1 創建c端代碼頭檔案
5.3.2 創建c端代碼主檔案
5.4 jni技術中數據類型與處理方法
5.4.1 jni技術中的本地數據類型
5.4.2 訪問jni本地數據類型的方法
5.4.3 在jni本地方法中訪問數組
5.4.4 jni中的主要方法
5.5 jni中的重要技術
5.5.1 局部引用與全局引用
5.5.2 處理本地方法引起的java錯誤
5.5.3 執行緒與本地方法
5.6 jni數學計算與性能最佳化
5.7 處理好jni中的中文問題
小結
第6章 類與接口
6.1 類的構造器
6.1.1 構造器編寫規則
6.2 類的繼承規則
6.2.1 單線繼承規則
6.2.2 包內部繼承規則
6.2.3 邏輯包含繼承規則
6.3 抽象類與接口
6.4 繼承與組合的套用時機
6.5 接口與抽象類的套用時機
6.6 內部類
6.7 與性能相關的建議與經驗
小結
第7章 jsp與servlet性能最佳化
7.1 提升jsp套用性能
7.1.1 最佳化jspinit()方法
7.1.2 通過最佳化_jspservice()方法提高系統性能
7.1.3 jsp高級知識
7.2 提升servlet套用性能
7.2.1 提高servlet套用性能的七個方法
7.2.2 合理緩衝靜態數據與動態數據
7.2.3 改善servlet套用性能的方法
7.2.4 filter servlet與listener servlet
小結
第8章 開發高性能的ejb套用
8.1 採用ejb技術的必要性
8.1.1 ejb技術的優勢特性
8.1.2 ejb技術體系具有清晰的架構層次
8.1.3 ejb與傳統bean相比的性能優勢
8.2 ejb的類型
8.2.1 ejb的生命周期
8.2.2 三種ejb的特點與適用場合
8.2.3 本地ejb與遠程ejb的性能比較
8.2.4 有狀態會話ejb與httpsession
8.2.5 ejb 3.0規範中的ejb
8.3 最佳化無狀態會話ejb性能
8.3.1 如何控制無狀態會話ejb的生命周期
8.3.2 通過調節無狀態會話ejb實例池的大小來最佳化系統性能
8.3.3 無狀態會話ejb資源的緩衝與釋放
8.4 最佳化有狀態會話ejb性能
8.4.1 控制有狀態會話ejb生命周期
8.4.2 最佳化有狀態會話ejb的主要途徑
8.5 最佳化實體ejb的性能
8.5.1 如何控制實體ejb的生命周期
8.5.2 通過調節實體ejb實例池的大小來最佳化系統性能
8.5.3 控制好實體ejb中的事務
8.5.4 提高實體ejb套用性能的其他知識
8.6 最佳化訊息ejb性能
8.6.1 如何控制訊息ejb的生命周期
8.6.2 如何快取釋放系統資源
8.7 幾種ejb的結合套用規則
8.8 提高ejb套用性能的其他途徑
小結
第9章 jms性能最佳化
9.1 jms訊息收發模式及其各自適用場合
9.2 傳送與接收jms訊息
9.3 最佳化jms中的會話對象
9.4 最佳化連線對象
9.5 最佳化訊息目的地destination及訊息生產者與消費者
9.6 最佳化訊息對象及合理使用事務機制
9.7 影響jms性能的其他因素
小結
第10章 jdbc與性能最佳化
10.1 選擇最優的驅動程式最佳化套用性能
10.2 最佳化jdbc連線
10.2.1 設定合適的預取行值
10.2.2 採用連線池技術
10.2.3 合理套用事務
10.2.4 選擇合適的事務隔離層與及時關閉連線
10.3 最佳化statement對象
10.4 最佳化resultset對象
10.4.1 通過緩衝數據行提高系統性能
10.4.2 通過設定合適的處理數據行的方向提高系統性能
10.4.3 通過採用合適的getxxx()方法提高系統性能
小結
第11章 軟體結構、設計模式與性能最佳化
11.1 模式簡介
11.2 常用模式的java實現與結構最佳化
11.2.1 單態/單件模式的結構最佳化
11.2.2 抽象工廠模式的結構最佳化
11.2.3 適配器模式的結構最佳化
11.2.4 代理模式的結構最佳化
11.2.5 橋接模式的結構最佳化
11.2.6 命令模式的結構最佳化
11.2.7 觀察者模式的結構最佳化
11.2.8 職責鏈模式的結構最佳化
11.2.9 中介者模式的結構最佳化
11.2.10 訪問者模式的結構最佳化
11.2.11 任務分配中心模式的結構最佳化
11.3 j2ee中的模式與性能最佳化
11.3.1 服務定位模式與性能最佳化
11.3.2 會話門面模式與性能最佳化
11.3.3 訊息門面模式與性能最佳化
11.3.4 返回值打包模式與性能最佳化
11.3.5 返回值包裝工廠模式與性能最佳化
11.3.6 值列表處理器模式與性能最佳化
11.3.7 複合實體模式與性能最佳化
小結
第12章 java多執行緒技術與套用性能最佳化
12.1 java多執行緒技術
12.1.1 進程與執行緒
12.1.2 執行緒的生命周期
12.2 並行任務與性能
12.2.1 並行任務與多執行緒
12.2.2 並行任務與死鎖
12.3 執行緒池技術與套用性能最佳化
12.3.1 執行緒池
12.3.2 調優執行緒池的尺寸
12.4 通過執行緒池技術最佳化套接字網路編程
小結
第13章 java泛型與套用最佳化
13.1 認識泛型
13.1.1 使用泛型的收益
13.1.2 泛型與jdk 5.0中的集合類
13.2 使用泛型
13.2.1 創建支持泛型的類
13.2.2 泛型的自動解包裝與自動包裝的功能
13.2.4 限制泛型中類型參數的範圍
小結
第14章 ajax技術與web套用性能最佳化
14.1 了解ajax
14.2 通過ajax技術改善web套用性能
14.2.1 ajax技術實現
14.2.2 ajax技術性能最佳化實例
小結
第15章 其他最佳化話題
15.1 用weakhashmap禁止記憶體泄漏
15.2 最佳化java套用大小
15.3 通過randomaccess接口最佳化疊代列表
15.4 合併java中的多進程與系統最佳化
小結
附錄a together工具的使用簡介
附錄b j2se 5.0的新特性與性能的提升
附錄c 編排代碼的精美工具jxbeauty