在我的项目上我刚做了LINT检查,到目前为止我很满意。但我很好奇为什么LINT报告StringBuilder的使用很慢?
我前一段时间从Eclipse切换到Android Studio,那些由eclipse生成的toString()方法可以获得更好的调试输出:
@Override
public String toString()
{
final StringBuilder builder = new StringBuilder();
builder.append("param1");
builder.append(param1);
builder.append(", param2");
builder.append(param2);
builder.append("param3");
....
return builder.toString();
}
在Studio中报告'用String替换StringBuilder'。从我的角度来看,StringBuilder总是更快,更友好的GC方法。或者DEX有些聪明,我不知道吗?
我搜索LINT Checks时没有任何描述
答案 0 :(得分:0)
简单的答案是,尽管性能完全没有差别,但更容易做到:
String string = "param1" + param1 + ", param 2" + param2 + "param3".... (and so on)
我更喜欢这种方法,因为它更短。在幕后,编译器会将其转换为您刚才提到的代码,生成的字节码完全相同。
如果你在一个循环中构建字符串,那么StringBuilder肯定是要走的路。