提高Java效能的幾個高效用法
阿新 • • 發佈:2019-02-19
1.迴圈
1.在重要的迴圈裡,消除迴圈終止判斷時的方法呼叫。。。
替換為…
2.通常,把與迴圈index不相關的移到迴圈的外面
改為
2.字串
■ 消除字串連線
■ 建立長字串時,總是使用StringBuffter代替String
■ 預先分配StringBuffer空間
StringBuffer sb = new StringBuffer(5000);
3.基本資料型別
■ 在重要的迴圈裡使用基本資料型別(int型資料通常比long/double型資料更快)
■ 基本資料型別(Boolean,Integer,etc)的包裝類主要用在當傳遞的方法引數必須是一個物件的引用時(而不是一個基本資料型別)
■ 對所有的常量代數表示式使用static final修飾符
一 使常量更容易引用(編譯器預先計算常量表達式)
4.異常
■ 異常只用於單個真正的錯誤條件
一 丟擲一個異常和執行一個catch程式碼塊花費是很高的(主要由於當建立一個異常時要獲得執行緒棧的一個快照)
一 只當條件真的異常時才丟擲一個異常
■ 使編譯器和執行時最優化,將幾個方法呼叫放在一個try/catch塊中,而不是為每個方法呼叫實現幾個try/catch塊
5.基準
■ 注意,所有這些技巧會因不同的平臺和虛擬機器而不同
一 例如:在有些servlet容器內,通過一個OutputStream作為位元組輸出會更快
一 在其它的容器內,通過一個PrintWriter輸出字元會更快
■ 這些技巧描述的是最可移植的建議
■ 你可能需要執行一些基準來判斷在你的平臺上怎麼樣是最快的