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

字符串拼接尽量使用 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) + "毫秒!"); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值