在Android上哪个解决方案会更快?

时间:2011-02-27 21:50:31

标签: java android

在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作为第一个解决方案?

5 个答案:

答案 0 :(得分:5)

在标准Java中,编译器将为String连接生成StringBuilder代码(在引擎盖下)。没有理由相信Android的情况并非如此,所以它可能没什么区别;选择哪个更易读。

答案 1 :(得分:2)

对于那些简单的事情,除非你做了数千次,否则这种差异可能不会引人注意。

最好不要担心在编写代码之前进行类似的小优化,并知道这是导致代码运行缓慢的原因。

答案 2 :(得分:1)

我认为在这种情况下第一个更快,因为您不必初始化StringBuilder等...,但您也可以测量它。

BUT:

Premature optimization is the root of all evil!

答案 3 :(得分:0)

我认为第一个更快更容易,因为您不必完成构建字符串构建器,我相信它会减少您的应用程序所需的内存。

答案 4 :(得分:0)

字符串是不可变的,所以每当你操作字符串时它会创建新的字符串,所以使用+来追加字符串应该使用更多的内存,我将使用stringBuilder。