132.提升Java性能的方法
1.不要在循环里面计算(如果在循环里面计算,每循环一次就计算一次,这会降低系统效率)
例:while(i<count*2) 应该该为int c = count*2 ; while(i<c){ }
2.尽量把不变的属性、方法、数组等声明为final static
例:public final static String[] cums = {"零","壹","贰","叁","肆","伍","陆","柒","玐","玖"} ; 这样,它只会在类加载的时候创建,以后直接使用。如果在方法里面声明非final static的数组,则每次调用该方法,就会重新生成一个数组,从而消耗了系统性能
3.缩小变量的作用范围
关于变量,能定义在方法内的就定义在方法内,能定义在一个循环体内的就定义在一个循环体内,能在try-catch中的就放在try-catch,其目地就是加快GC的回收
4.频繁的字符串操作使用StringBuffer或StringBuilder
5.使用非线性检索
如果在ArrayList中存储了大量数据,检索应该使用java.util.Collections.binarySearch()进行检索。(它使用的是二分搜索法,在检索前应该先排序,否则准确性不可靠)
ArrayList中的少量数据用自身的indexOf()方法,它是逐个元素进行比较
6.覆写Exception的fillInStackTrace
7.不建立冗余对象
例如下面这段代码:变量exceptionMsg,在调用刚方法的时候,变量就创建了,但是只有当catch,才会用到该变量,没出问题的时候是不会用到该变量的。正确的做法是把该变量声明到catch语句中(这点就相当于第3点,缩小变量的作用域)
总结:
133.若非必要,不要克隆对象
克隆对象并不比直接生成对象高