光阴似箭催人老,日月如移越少年。
分以下两种情况:
floatValue为常量时,floatValue + ""将被编译优化成String,效率很高;
floatValue + ""
floatValue为变量时,floatValue + ""将被编译成new StringBuilder(floatValue).append("").toString();将被编译成new StringBuilder(floatValue).append("").toString();效率略低一些。
new StringBuilder(floatValue).append("").toString();
可参考:http://www.java67.com/2015/05...
后续几次结果
''+float程序运行时间:7511137236nmString.valueof(float)’ 程序运行时间:4401233361
证明Valueof(float)的效率高点~
而 String.valueof()调用了 FloatingDecimal.toJavaFormatString(f)
FloatingDecimal.toJavaFormatString(f)
public String toJavaFormatString() { char result[] = (char[])(perThreadBuffer.get()); int i = getChars(result); return new String(result, 0, i); }
理论上肯定是String.valueOf(float)会更快。
String.valueOf(float)
因为float + ""会被编译为
float + ""
StringBuilder sb = new StringBuilder(); sb.append(f); sb.append(""); sb.toString();
做的事情更多,消耗自然也会更多。
分以下两种情况:
floatValue为常量时,
floatValue + ""
将被编译优化成String,效率很高;floatValue为变量时,
floatValue + ""
将被编译成new StringBuilder(floatValue).append("").toString();
将被编译成new StringBuilder(floatValue).append("").toString();
效率略低一些。可参考:
http://www.java67.com/2015/05...
后续几次结果
证明Valueof(float)的效率高点~
而 String.valueof()调用了
FloatingDecimal.toJavaFormatString(f)
理论上肯定是
String.valueOf(float)
会更快。因为
float + ""
会被编译为做的事情更多,消耗自然也会更多。