将浮点数字转换成字符串的两种方式,哪一种更快一些?
后续几次结果
''+float程序运行时间:7511137236nm
String.valueof(float)’ 程序运行时间:4401233361
证明Valueof(float)的效率高点~
而 String.valueof()调用了 FloatingDecimal.toJavaFormatString(f)
public String toJavaFormatString() {
char result[] = (char[])(perThreadBuffer.get());
int i = getChars(result);
return new String(result, 0, i);
}
理论上肯定是String.valueOf(float)
会更快。
因为float + ""
会被编译为
StringBuilder sb = new StringBuilder();
sb.append(f);
sb.append("");
sb.toString();
做的事情更多,消耗自然也会更多。
Maybe you could refer below resource which has examples that relate your question,
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
2 回答5.8k 阅读
2 回答8.1k 阅读✓ 已解决
5 回答5k 阅读✓ 已解决
6 回答7.6k 阅读✓ 已解决
2 回答763 阅读✓ 已解决
分以下两种情况:
floatValue为常量时,
floatValue + ""
将被编译优化成String,效率很高;floatValue为变量时,
floatValue + ""
将被编译成new StringBuilder(floatValue).append("").toString();
效率略低一些。可参考:
http://www.java67.com/2015/05...