一下是个人测试结果,仅供参考
一、测试用例
private int time = 10;
/**
* 测试连接字符效率
* */
@Test
public void testadd() {
for(int i=0;i<10000000;i++) {
String str1 = "abcdef";
String str2 = "ghijk";
for(int j=0;j<time;j++)
str2 = str2 + str1;
}
}
/**
* 测试concat效率
*/
@Test
public void testConcat() {
for(int i=0;i<10000000;i++) {
String str1 = "abcdef";
String str2 = "ghijk";
for(int j=0;j<time;j++)
str2 = str1.concat(str2);
}
}
/**
* 测试Stringbuilder
*/
@Test
public void testStringBuilderConcat() {
for(int i=0;i<10000000;i++) {
StringBuilder sb = new StringBuilder("abcdef");
for(int j=0;j<time;j++)
sb.append("ghijk");
String str1 = sb.toString();
}
}
1.三者的执行时间如下,StringBuilder连接字符串的效率明显高于使用+号和Concat
三、结论
使用StringBuil的效率 > 使用concat > +
因为没有找到监控他们各自使用内存的好方法所以没有进行对于内存使用的比较,如果哪位大神有什么好方法请务必告诉小弟