String,StringBuffer,StringBuilder三者性能

String性能最差,final对象,不能改变,做字符拼接是得重新new一个对象,然后作拼接

StringBuffer 在对象内部操作,里面的方法绝大数是同步方法,在内部用 char[]数组进行操作

StringBuilder是StringBuffer的非同步对象,如果没有线程安全,则可以用此对象,性能比StringBuffer更好


一下是测试代码package stringaa;

package stringaa;

import java.util.ArrayList;
import java.util.List;

/**
 * String StringBuffer StringBuider三者性能
 * @author Administrator
 * 
 * String 不可变,对String做+操作实际上是将两个字符串合并重新生产新的String对象
 *StringBuffer是对一个对象进行操作,把当前字符串copy到StringBuffer里面的char数组里,同步
 *StringBuilder 非同步,和StringBuffer差不多,性能稍微好一点
 */
public class StringTest {
	
	
	public static void main(String[] args) {
	
	long start=System.currentTimeMillis();
		
		/*String str="a";
		for(int i=0;i<500000;i++){
			str+=i;
		}
		*/
		
		//老半天没反应
	   
	/*
		StringBuffer sb=new StringBuffer("a");
		for(int i=0;i<500000;i++){
			sb.append("nihao");
		}
		*/
		
		//完成时间94ms
		
		
		
		StringBuilder sbu=new StringBuilder("a");
			for(int i=0;i<500000;i++){
				sbu.append(i);
			}
	 //完成时间78ms   
		
	long end=System.currentTimeMillis();
	System.out.println(end-start);

	}	   
}

分别对三个执行50w次得字符拼接,结果,StringBuilder最快78ms,StringBuffer其次94ms,两者性能差别不大,String最慢,2分钟没出结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值