在Android 2.1上哪种解决方案会更快?
1
public void foo(String a, String b)
{
String msg = a + ": " + b;
print(msg);
}
2
public void foo(String a, String b)
{
StringBuilder sb = new StringBuilder(a.length() + b.length() + 2);
sb.append(a);
sb.append(": ");
sb.append(b);
print(sb.toString());
}
android是否在内部使用StringBuilder作为第一个解决方案?
答案 0 :(得分:5)
在标准Java中,编译器将为String连接生成StringBuilder代码(在引擎盖下)。没有理由相信Android的情况并非如此,所以它可能没什么区别;选择哪个更易读。
答案 1 :(得分:2)
对于那些简单的事情,除非你做了数千次,否则这种差异可能不会引人注意。
最好不要担心在编写代码之前进行类似的小优化,并知道这是导致代码运行缓慢的原因。
答案 2 :(得分:1)
我认为在这种情况下第一个更快,因为您不必初始化StringBuilder等...,但您也可以测量它。
答案 3 :(得分:0)
我认为第一个更快更容易,因为您不必完成构建字符串构建器,我相信它会减少您的应用程序所需的内存。
答案 4 :(得分:0)
字符串是不可变的,所以每当你操作字符串时它会创建新的字符串,所以使用+来追加字符串应该使用更多的内存,我将使用stringBuilder。