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輸出字符會更快
這些技巧描述的是最可移植的建議
你可能需要運行一些基準來判斷在你的平臺上怎么樣是最快的
新聞熱點
疑難解答