1700451893
1700451894
//Do Something
1700451895
1700451896
}
1700451897
1700451898
应该替换为:
1700451899
1700451900
//只计算一遍
1700451901
1700451902
int total=count*2;
1700451903
1700451904
while(i<total){
1700451905
1700451906
//Do Something
1700451907
1700451908
}
1700451909
1700451910
(2)尽可能把变量、方法声明为final static类型
1700451911
1700451912
假设要将阿拉伯数字转换为中文数字,其定义如下:
1700451913
1700451914
public String toChineseNum(int num){
1700451915
1700451916
//中文数字
1700451917
1700451918
String[]cns={“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”};
1700451919
1700451920
return cns[num];
1700451921
1700451922
}
1700451923
1700451924
每次调用该方法时都会重新生成一个cns数组,注意该数组不会改变,属于不变数组,在这种情况下,把它声明为类变量,并且加上final static修饰会更合适,在类加载后就生成了该数组,每次方法调用则不再重新生成数组对象了,这有助于提高系统性能,代码如下。
1700451925
1700451926
//声明为类变量
1700451927
1700451928
final static String[]cns={“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”};
1700451929
1700451930
public String toChineseNum(int num){
1700451931
1700451932
return cns[num];
1700451933
1700451934
}
1700451935
1700451936
(3)缩小变量的作用范围
1700451937
1700451938
关于变量,能定义在方法内的就定义在方法内,能定义在一个循环体内的就定义在循环体内,能放置在一个try……catch块内的就放置在该块内,其目的是加快GC的回收。
1700451939
1700451940
(4)频繁字符串操作使用StringBuilder或StringBuffer
1700451941
1700451942
虽然String的联接操作(“+”号)已经做了很多优化,但在大量的追加操作上StringBuilder或StringBuffer还是比“+”号的性能好很多,例如这样的代码:
[
上一页 ]
[ :1.700451893e+09 ]
[
下一页 ]