package com.example.test;
import android.util.Log;
public class TestString {
public void testPlus() {
String s = "";
long ts = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
s = s + String.valueOf(i);
}
long te = System.currentTimeMillis();
Log.e("+cost {} ms", te - ts + "");
}
public void testConcat() {
String s = "";
long ts = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
s = s.concat(String.valueOf(i));
}
long te = System.currentTimeMillis();
Log.e("concat cost {} ms", te - ts + "");
}
public void testStringBuffer() {
StringBuffer sb = new StringBuffer();
long ts = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
sb.append(String.valueOf(i));
}
sb.toString();
long te = System.currentTimeMillis();
Log.e("StringBuffer cost {} ms", te - ts + "");
}
public void testStringBuilder() {
StringBuilder sb = new StringBuilder();
long ts = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
sb.append(String.valueOf(i));
}
sb.toString();
long te = System.currentTimeMillis();
Log.e("StringBuilder cost {} ms", te - ts + "");
}
}
会发现其实 + 和 stringbuilder在拼接很多的字符串的时候性能差距非常大,
当然 如果拼接两个或者很少的字符串效果就不明显了,:
拼接两个字符串的时候,两种方式都需要创建三个String对象
本文通过实验对比了不同字符串拼接方法(+操作符、concat()、StringBuffer和StringBuilder)在Android环境下的性能表现。实验结果显示,在大量字符串拼接场景中,StringBuilder提供了最优的性能。
672

被折叠的 条评论
为什么被折叠?



