这是我的简单问题
我们可以将integer, float, double
转换为String s = "" + i;
之类的字符串,以便为什么我们需要String s = Integer.toString(i);
?只是OO programmig的要求?
由于
答案 0 :(得分:6)
因为"" + i
是一种非常糟糕的做法。它通过连接空字符串和整数转换为字符串,这在内部导致StringBuilder
实例的创建,空字符串的追加,对Integer.toString()
的调用,转换的追加,然后拨打StringBuilder.toString()
。
Integer.toString()
完成所需的操作:将整数转换为字符串。因此它更有效,也更清晰和可读,因为它告诉它它的作用:将整数转换为字符串。
答案 1 :(得分:1)
String s = "" + i;
只是一个捷径。编译器将其转换为String s = "" + Integer.toString(i);
。
答案 2 :(得分:0)
“integer”是一种基本类型,编译器可以隐式转换它。
“Integer”是一种对象类型,并且有自己的方法来提供转换。
答案 3 :(得分:0)
在这个网站中,它对两种方法进行了比较: http://en.literateprograms.org/Convert_Integer_to_String_(Java)
我没有时间去探究,但如果你这样做的话也一样吗?: String text = i; 我认为只适用于连接,但不是纯粹的任务。 String s =“”+ i; 看起来不太好......
答案 4 :(得分:0)
代码
"" + i
变成了
new StringBuilder().append(i).toString();
这会创建三个对象,而
Integer.toString(i)
仅创建2.这使得后者更有效,每次通话可以节省大约0.1微秒。
但是,代码的简单性通常比性能更重要,编写/检查/维护更长的代码序列所花费的时间通常比您可能节省的几个周期更有价值。
e.g。说i
变成了长型。在第一种情况下,您不需要更改代码,它仍然是。
""+i
然而,第二个例子需要在任何地方使用
进行更改Long.toString(i);
一个微小的改变,但可能完全没有必要。