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);