Sonar 代码常见规则总结

来源:互联网 发布:手机淘宝如何购物 编辑:程序博客网 时间:2024/06/15 18:36

最近接触到SonarQube,它能实现代码的扫描及结合其他插件扫描代码的单元测试覆盖率,在测试早期就能发现一些基本的问题,甚至能发现功能测试不能发现的问题,极大的提高了代码的测试效率。更多的Sonar Rule 参考下面这篇博文:
http://www.voidcn.com/article/p-czczizzu-bnv.html

自己平常也会写一些Java代码,也会遇到Rule中常见的问题,现在总结一下,后续会接着补充:

  • 字符串拼接不要使用 +
    如 string1 + string2 的形式,这样相当于每次赋值都会new一个对象,效率非常低,可以使用StringBuilder 或者 StringBuffer,StringBuffer 是线程安全的,有很多同步的方法,效率不如StringBuilder。

  • 不要使用BigDecimal(double)
    因为浮点的不精确,可能使用BigDecimal(double)得不到期望的值,使用 BigDecimal.valueOf 代替,如:

double d = 1.1BigDecimal bd1 = BigDecimal.valueOf(d);
  • if 语句中null与一个object比较的时候,null放前面
ifnull == object){}

而不写成

if(object == null){}

这样写是从c++引入的一个习惯,因为在c++中少写一个“=”会引起编译报错。在c++中如果写成

if2 = null){}

编译时不会被发现,而写成

ifnull = 2){}

编译时就会报错。

  • == 和 equals
    “==”常用来比较基本数据类型,如果String 类型是 “=”号赋值而不是new的对象,也可以用 “==”来比较
    引用类型用 equals 比较,它比较的是引用的值。
原创粉丝点击