有时java困惑我.
我有大量的int初始化.
什么是真正的差异?
Integer.toString(i)
new Integer(i).toString()
Jea*_*ean 542
Integer.toString
在类中调用静态方法Integer
.它不需要实例Integer
.
如果您调用new Integer(i)
,则创建一个type实例Integer
,它是一个封装int值的完整Java对象.然后你调用toString
它上面的方法让它返回一个自己的字符串表示.
如果您只想打印一个int
,那么您将使用第一个,因为它更轻,更快并且不使用额外的内存(除了返回的字符串).
如果你想要一个表示整数值的对象 - 例如将它放在一个集合中 - 你会使用第二个,因为它为你提供了一个完整的对象来完成你无法做到的所有事情int
.
oks*_*ayt 96
new Integer(i).toString()
首先创建一个(冗余的)包装器对象i
(它本身可能是一个包装器对象Integer
).
Integer.toString(i)
是首选,因为它不会创建任何不必要的对象.
fhu*_*cho 42
另一种选择是静态String.valueOf
方法.
String.valueOf(i)
Run Code Online (Sandbox Code Playgroud)
它感觉略多于权Integer.toString(i)
给我.当i的类型改变时,例如从int
to 改变,double
代码将保持正确.
小智 14
new Integer(i).toString();
此语句创建Integer的对象,然后调用其方法toString(i)
以返回Integer值的String表示形式.
Integer.toString(i);
它返回表示特定int(整数)的String对象,但这toString(int)
是一个static
方法.
摘要在第一种情况下它返回对象字符串表示,其中在第二种情况下它返回整数的字符串表示.
小智 14
我也强烈推荐使用
int integer = 42;
String string = integer + "";
Run Code Online (Sandbox Code Playgroud)
简单有效.
小智 11
虽然我喜欢fhucho的推荐
String.valueOf(i)
Run Code Online (Sandbox Code Playgroud)
具有讽刺意味的是,这种方法实际上是召唤
Integer.toString(i)
Run Code Online (Sandbox Code Playgroud)
因此,String.valueOf(i)
如果您喜欢它的读取方式,并且您不需要基数,但也知道它的效率低于Integer.toString(i)
.
归档时间: |
|
查看次数: |
1189055 次 |
最近记录: |