zoukankan      html  css  js  c++  java
  • 编写高质量代码:改善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.若非必要,不要克隆对象

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

  • 相关阅读:
    【Python3爬虫】一次应对JS反调试的记录
    【Python3爬虫】突破反爬之应对前端反调试手段
    学习CSS之如何改变CSS伪元素的样式
    学习CSS之用CSS实现时钟效果
    学习CSS之用CSS绘制一些基本图形
    【Python3爬虫】一次破解JS加密数据的记录
    Linux安装部署Redis(超级详细)
    Linux部署MongoDB
    使用Nginx对.NetCore站点进行反向代理
    Linux部署.NetCore站点 使用Supervisor进行托管部署
  • 原文地址:https://www.cnblogs.com/-scl/p/7685580.html
Copyright © 2011-2022 走看看