sonar问题修改

来源:互联网 发布:java判断白天还是晚上 编辑:程序博客网 时间:2024/06/16 22:03

fb-contrib:LSYC_LOCAL_SYNCHRONIZED_COLLECTION

  • 问题说明
    StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
    由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
  • 解决方案
    StringBuffer sb=new StringBuffer()改为StringBuilder sb=new StringBuilder()

fb-contrib:UCPM_USE_CHARACTER_PARAMETERIZED_METHOD

  • 问题说明
    单个字符操作时indexOf等方法会先将字符串改成StringBuffer,影响性能。
  • 解决方案
    双引号改为单引号 ip.indexOf(“,”) 改为ip.indexOf(‘,’)

fb-contrib:NAB_NEEDLESS_BOXING_PARSE

  • 问题说明
    valueOf将字符串解析为基本类型时是一个对象,如果需要的是基本类型编译器还会做un-boxing,影响性能
  • 解决方案
    int i = Integer.valueOf(s)改为int i= Integer.parseInt(s)

fb-contrib:SPP_EQUALS_ON_ENUM

  • 问题说明
    使用equals(Object)比较枚举值
  • 解决方案
    直接使用==比较

fb-contrib:LO_APPENDED_STRING_IN_FORMAT_STRING

  • 问题说明
    在SLF4J日志记录器中使用字符串拼接记录日志影响性能。logger.info(“Hello “+”world”);
  • 解决方案
    使用{}表达式.logger.info(“Hello {},I am {}”,”world”,“zhangsan”);

b-contrib:LSC_LITERAL_STRING_COMPARISON

  • 问题说明
    使用变量前置的对象比较容易导致空指针异常。str.equals(“someOtherString”);

  • 解决方案
    将比较的常量放在前面”someOtherString”.compareTo(str);

原创粉丝点击