您的位置:首页 > 编程语言 > Java开发

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

2017-01-03 09:56 731 查看

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

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



推荐用valueOf()

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



推荐使用接口声明方式

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

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



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


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



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


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

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



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

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



public ArrayList();

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

public ArrayList(int);

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

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


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



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


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



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





不要在循环体内声明变量

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



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


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



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


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

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



可读性很重要



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐