• Java基础学习总结(93)——Java编码规范之代码性能及惯例


    1、避免使用包装类构造函数

    按照SUN公司的说明,使用自动装箱或静态工厂方法比使用new一个对象快3到4倍,该规则可以用在valueOf或其它静态工厂的调用中(如:Short、Integer, Long、Double, Byte 、Boolean等)。

    JAVA编码规范之代码性能及惯例

    推荐用valueOf()

    2、面向接口编程时,推荐使用接口的声明方式

    JAVA编码规范之代码性能及惯例

    推荐使用接口声明方式

    3、单个方法代码行数尽量保持在80-100行之内

    4、数据库及磁盘IO等操作,必须在try-catch-finally块的finally中执行close()方法

    如有多个对象需要关闭,则须分别对每个对象的close()方法进行try-catch,以防止出现一个对象关闭失败而导致其他对象都未关闭的情况出现

    5、不要在循环体内进行数据库的“连接-关闭”操作

    如有大批量的数据需要修改,建议使用PreparedStatement的Batch功能(一次性发送多个操作给数据库)

    6、大量(如超过五次以上的“+=”运算)的字符串操作应使用StringBuilder或StringBuffer,尽量避免使用String

    7、不要在循环条件中使用表达式

    JAVA编码规范之代码性能及惯例

    循环条件中避免使用表达式

    8、应尽可能的以指明容量大小的方式对ArrayList进行实例化

    • public ArrayList();

      默认的构造器,JAVA以10个元素的大小初始化

    • public ArrayList(int);

      用指定的容量大小大小初始化

    不指明容量大小时,如集合容量不够,则JAVA会以1.5倍的容量递增扩充,而且每次扩充,系统会重新拷贝一遍已经加入到ArrayList的数据,从而导致额外的内存开销。

    9、集合中的数据如果不使用了应该及时释放

    由于集合保存了对象的引用,虚拟机的垃圾收集器就不会回收

    10、不要在循环体内声明变量

    尽量避免在循环体内声明变量,因为每一个引用占4个字节。这样可以极大的减少新对象的创建数量,从而很大限度的减小内存开销。

    JAVA编码规范之代码性能及惯例

    不要在循环体内声明变量

    11、非正常运行产生的异常被捕获后,必须对异常进行处理

    在非finally块代码中catch的异常应该重新抛出经过封装的异常,在finally中再次catch的异常不应该再次抛出,应该写日志。无论是抛出异常还是记录日志,都要传递异常对象。日志应记录详细的描述信息,避免调用异常对象的getMessage()方法,直接将该异常对象作为参数传递。

    12、尽量定位异常类型,不要一律catch(Exception ex)

    当需要在某些出口捕获所有可能出现的运行时异常或Error时,可以catch Exception 或Throwable。

    13、尽量避免一个方法中一个大的try块,catch一个Exception的代码方式,如果有必要可以使用多个try-catch块分别处理

    14、不要将赋值运算符用在容易与相等关系运算符混淆的地方,如:

    JAVA编码规范之代码性能及惯例

    可读性很重要

    类似的道理,我们可将“if (a == b && c == d)”改为可读性更强的“if ((a == b) && (c == d)) ”,可将“x >= 0 ? x : -x;"改为”(x >= 0) ? x : -x;“

  • 相关阅读:
    Cg(C for Graphic)标准函数库之数学函数与几何函数
    小技巧总结
    MVC学习笔记
    HTML5 ajax上传附件
    JS:公历、农历互转
    JS:中文GB2312编码
    Oracle:递归查询(树形结构数据)
    oracle:自定义多行合并聚合函数
    编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统
    编写一个可配置的网页信息提取组件
  • 原文地址:https://www.cnblogs.com/zhanghaiyang/p/7212683.html
Copyright © 2020-2023  润新知