编写高质量代码:改善Java的151个建议(性能和效率)132-133

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.若非必要,不要克隆对象

   克隆对象并不比直接生成对象高

原文地址:https://www.cnblogs.com/-scl/p/7685580.html