172
|
Manuel Selva · 技术社区 · 14 年前 |
1
48
只是做同一件事的两种不同方式。这可能是一个历史原因(不记得是不是一个先于另一个)。 |
2
175
在字符串类型中,我们有几个valueOf方法
像你介绍的每一个具体方法的实现:对于整数,我们有
双倍
等等
在我看来,这不是什么历史事件,但是对于开发人员来说,使用这种方法更有用
样本2:
正如我们在示例2中看到的,我们必须做两个更改,与示例1相反。
在我的结论中,使用
|
3
54
|
4
13
String类为所有基元类型和对象类型提供valueOf方法,因此我假设它们都是方便的方法,都可以通过一个类访问。
平均intToString=5368ms,平均stringValueOf=5689ms(对于100000000次操作)
|
5
10
所以他们给出了完全相同的结果,事实上一个调用另一个。
|
6
8
如果你看一下
话虽如此,
|
7
3
实施
|
8
3
为了回答OPs的问题,它只是一个有另一个调用的helper包装器,归根结底是样式选择,就是这样。我认为这里有很多错误的信息,Java开发人员能做的最好的事情就是查看每个方法的实现,在任何IDE中只需点击一两次。你会明白的
因此,它们之间的差别是绝对零的,因为它们都创建了一个char缓冲区,遍历数字中的数字,然后将其复制到一个新字符串中并返回它(因此每个都创建了一个String对象)。唯一的区别是一个额外的调用,不管怎样,编译器都会将其消除为一个调用。
|
9
2
你不应该担心这个额外的通话会给你带来效率问题。如果有任何成本的话,它将是最小的,而且应该是可以忽略不计的。
也许两者存在的原因是为了提供可读性。在许多类型转换为
|
10
1
|
11
1
Integer.toString(5)和String.valueOf(5)之间没有区别; 因为String.valueOf返回:
等。。 |
12
0
使用唯一的语法String.valueOf()可以将作为参数传递的任何内容转换为String并返回。。 否则,如果使用Integer.toString()、Float.toString()等(即SomeType.toString()),则必须检查要转换为字符串的参数的数据类型。 如果您有一个包含不同值的对象类数组,如Integer、Char、Float等,那么通过使用String.valueOf()方法,您可以轻松地将此类数组的元素转换为字符串形式。相反,如果您想使用SomeType.toString(),那么首先您需要了解它们的数据类型类(可能通过使用“instanceOf”操作符),然后只有您可以继续进行类型转换。 调用时,String.valueOf()方法匹配传递的参数(无论是整数、字符、浮点等),并通过使用方法重载调用参数匹配的“valueOf()”方法,然后在该方法中直接调用对应的“toString()”方法。。
结论:String.valueOf()方法的重要性是以多调用一次为代价的。 |
13
-3
toString()
值()
检查这个链接它非常好。 http://code4reference.com/2013/06/which-one-is-better-valueof-or-tostring/ |