StringBuffer的append拼接和String的+连接效率对比

来源:互联网 发布:mac电源以连接,未充电 编辑:程序博客网 时间:2024/04/30 01:44
字符串拼接尽量使用 StringBuffer 的append方法来拼接。而直接使用”+”来连接String类型。会增加内存和CPU的开销。String字符串拼接的原理如下 String str1 = “a”; String str2 = “b”; str1 = str1 + str2; 内存上,他先会开辟出一个新的内存空间,存放str3 = str1+str2,然后再把str3的引用交给str1.如果使用StringBuffer呢?则是在str1后面“接”上的,完成过程只后str1,str2俩个对象。 CPU上,想必写个循环1000次的拼接程序,大家就会明显的看出来吧。下面代码,运行看看吧。 
//1秒=1000毫秒 
public class Test { 
public static void main(String[] args) { 
String str = ""; 
StringBuffer sb = new StringBuffer(); 
long start = 0L; 
long end = 0L; 
start = System.currentTimeMillis(); 
for (int i = 0; i < 9999; i++) { 
str = str + "a"; 

end = System.currentTimeMillis(); 
System.out.println("使用string的时间是:" + (end - start) + "毫秒!"); 

start = System.currentTimeMillis(); 
for (int i = 0; i < 9999; i++) { 
sb.append("a"); 

end = System.currentTimeMillis(); 
System.out.println("使用StringBuffer的时间是:" + (end - start) + "毫秒!"); 

2 0
原创粉丝点击