String StringBuffer Stringbuilder之间的区别

博主是一名学生,

对一些知识有着自己的理解...也是为了不说多余的话了


String/StringBuffer/StringBuilder三则之间的区别

String:引用类型,表示字符串.对字符串进行拼接这里使用代码演示

		//演示String对字符串的拼接
		String str = " ";
		//String拼接开始时间
		long start = System.currentTimeMillis();
		for(int i = 1 ; i < 100000 ; i++ ){
			str+=i;
		}
		//String拼接结束时间
		long end = System.currentTimeMillis();
		System.out.println("执行程序所需要的时间:"+(end-start));



StringBuffer也是表示字符串.用于字符串的拼接

/使用StringBuffer拼接
		String str = " ";
		//拼接开始时间
long current = System.currentTimeMillis();
		StringBuffer sbf = new StringBuffer();
		for (int j = 0; j < 100000; j++) {
			sbf.append(j).append(str);
			
		}
		long endTime = System.currentTimeMillis();
		System.out.println("改代码执行的时间:"+(endTime-current));



StringBuilder用于字符串的拼接:

		//使用StringBuffer拼接
			String str2 = " ";
			//拼接开始时间
			long current1 = System.currentTimeMillis();
			StringBuilder sb = new StringBuilder();
			for (int j = 0; j < 100000; j++) {
				sb.append(j).append(str2);
			}
			long endTime1 = System.currentTimeMillis();
			System.out.println("改代码执行的时间:"+(endTime1-current1));



StringBuffer和StringBuilder拼接的速度几乎相同.那么到底该用哪个.

个人认为使用StringBuffer比较好.StringBuilder存在着线程不安全的问题.可以查看原代码

StringBuffer都使用了synchronized字段进行修饰,synchronized是为了在多线程环境中保证线程的安全,而StringBuilder没有使用synchronized修饰不建议使用.

而String拼接之所以很慢.是因为没拼接一次就会创建一次对象,这样大大较低了程序运行的速度,

而在实际开发中也不建议使用String进行拼接


如果对上面的有什么读到的见解,欢迎留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值