sonar编码规范之Use "Integer.parseInt" for this string-to-int conversion
2016-12-14 08:48
363 查看
在将字符串转换为整形时sonar推荐的是Integer.parseInt,而不是Integer.valueOf,原因是前者效率更高。进入Integer.valueOf内部就知道了:
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
后者会额外创建一个临时Integer对象,尤其在循环中慎用Integer.valueOf,优先选择Integer.parseInt
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
后者会额外创建一个临时Integer对象,尤其在循环中慎用Integer.valueOf,优先选择Integer.parseInt
相关文章推荐
- 修复VirtualBox "This kernel requires the following features not present on the CPU: pae Unable to boot – please use a kernel appropriate for your CPU"
- Unable to parse template "Class" Error message: This template did not produce a Java class or an int
- Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决
- Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决
- 修复VirtualBox "This kernel requires the following features not present on the CPU: pae Unable to boot – please use a kernel appropriate for your CPU"(安装深度Linux的时候就需要)
- ERROR: "This virtual machine appears to be in use"
- VMware Workstation "This virtual machine appears to be in use.
- 如何把string解析为int?[C#] How to Parse a string to an int? [C#]
- Unable to find a value for "字段名" in object of class java.lang.String using operator "."
- ERROR: "This virtual machine appears to be in use
- VMware Workstation 出现 "This virtual machine appears to be in use."的问题
- ERROR: "This virtual machine appears to be in use"
- Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state
- ERROR: "This virtual machine appears to be in use"
- Convert integer to string(int类型转化为string类型)
- java.lang.Integer cannot be cast to java.lang.String Java int,double向String的转化和String向int,double的转换
- Java: Good way to encapsulate Integer.parseInt()
- ERROR: "This virtual machine appears to be in use"
- How to use "for/" batch command in Dos extention