標簽: java 編程 優(yōu)化
1.避免對boolean判斷##
嘗試去掉boolean與true的比較判斷的代碼
例:
if(str.endswith("a")==true){
}
if(str.endswith("a")){
}
2.用靜態(tài)方法替代實例方法##
如果沒有必要訪問對象的外部,那么就讓你的方法成為靜態(tài)方法。靜態(tài)方法會被更快的調用,因為它不需要一個虛擬函數(shù)導向表,該表用來告訴你如何區(qū)分方法的性質,調用這個方法不會改變對象的狀態(tài)。
3.避免不必要的instanceof操作
4.避免子類存在父類轉換
5.多使用局部變量
調用方法時傳遞的參數(shù)以及在調用中創(chuàng)建的臨時變量都被保存在棧里面,因此讀寫速度較快。其他變量,如靜態(tài)變量、實例變量,都在堆中被創(chuàng)建,也被保留在堆中,讀取速度相對較慢。
局部變量訪問速度遠遠高于類的成員變量。
6.使用位運算##
例:
a*=2;
//使用位運算
a<<1;
7.一維數(shù)組與二維數(shù)組
一維數(shù)組和二維數(shù)組的訪問速度不一樣,二維數(shù)組的訪問速度比一維數(shù)組快,但是二維數(shù)組需要占用更多的內存空間。
8.用布爾運算代替位運算
boolean a=false;
boolean b=false;
if(a&&b){
//當使用a&&b時,a已經(jīng)為false,所以不會再計算剩余表達式
}
if(a&b){
//當使用a&b時,位運算總會計算所有表達式再給出最終結果
}
9.提取表達式優(yōu)化##
b1=a1*a2*a4/3*4*a3*a4;
b2=a1*a2*a3/3*4*a3*a4;
//優(yōu)化
combine=a1*a2/3*4*a3*a4;
b1=combine*a4;
b2=combine*a3;