Sonar 代码常见规则总结

最近接触到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.1
BigDecimal bd1 = BigDecimal.valueOf(d);
  • if 语句中null与一个object比较的时候,null放前面
ifnull == object){
}

而不写成

if(object == null){
}

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

if2 = null){
}

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

ifnull = 2){
}

编译时就会报错。

  • == 和 equals
    “==”常用来比较基本数据类型,如果String 类型是 “=”号赋值而不是new的对象,也可以用 “==”来比较
    引用类型用 equals 比较,它比较的是引用的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值