是使用Java转换为String
"" + <int value>
Run Code Online (Sandbox Code Playgroud)
不好的做法?与String.valueOf(...)相比,它有任何缺点吗?
代码示例:
int i = 25;
return "" + i;
Run Code Online (Sandbox Code Playgroud)
VS:
int i = 25;
return String.valueOf(i);
Run Code Online (Sandbox Code Playgroud)
更新:(来自评论)
那么Integer.toString(int i)与String.valueOf(...)相比呢?
Kip*_*Kip 11
还有Integer.toString(int i),它为您提供了将字符串作为十六进制值的选项(通过传递第二个参数16).
编辑我刚检查了String类的来源:
public static String valueOf(int i) {
return Integer.toString(i, 10);
}
Run Code Online (Sandbox Code Playgroud)
和整数类:
public static String toString(int i, int radix) {
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
radix = 10;
/* Use the faster version */
if (radix == 10) {
return toString(i);
}
...
Run Code Online (Sandbox Code Playgroud)
如果你打电话String.valueOf(i)
,它会打电话Integer.toString(i, 10)
,然后打电话Integer.toString(i)
.
所以Integer.toString(i)
应该是非常略低的速度比String.valueOf(i)
,因为你会被切割出两个函数调用.(尽管编译器可以优化第一个函数调用.)
当然,仍然可以使用可读性参数String.valueOf()
,因为它允许您更改参数的类型(甚至处理空值!),并且性能差异可以忽略不计.
绝对使用String.valueOf(i).
虽然我不确定编译器端的优化,但最坏的情况是使用""+:
换句话说,如果使用字符串添加,会发生很多开销.这就是为什么不建议在循环中的字符串上使用+运算符.通常,在可能的情况下,始终使用Boolean.valueOf,Integer.valueOf,String.valueOf ...等.你将节省内存和开销.
归档时间: |
|
查看次数: |
4366 次 |
最近记录: |