你留意StringBuilder与StringBuffer的区别了吗?

你留意StringBuilder与StringBuffer的区别了吗?
这两个字符串类,估计出现在我面前有一两年之久了,但我一直没去关心两者的区别。曾经以为StringBuilder是StringBuffer的早期版本,但事情真是这样的吗?先其他不说,上个实例:

package com.test.strtest;

public class StrMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		System.out.println();
		
		StringBuilder testB = new StringBuilder();
		long curTime = System.currentTimeMillis();
		for (int i = 0, len = 100000; i < len; i++) {
			testB.append("StringBuilder");
		}
		System.out.println((System.currentTimeMillis() - curTime) + "毫秒");

		StringBuffer testBu = new StringBuffer();
		curTime = System.currentTimeMillis();
		for (int i = 0, len = 100000; i < len; i++) {
			testBu.append("StringBuffer");
		}

		System.out.println((System.currentTimeMillis() - curTime) + "毫秒");
	}

}
 



结果:
15毫
31毫
从上面一个简单的例子中我们会很明白的看出,StringBuilder会比StringBuffer快出一倍还多。
The addition of a new class StringBuilder  that works essentially as an unsynchronized StringBuffer for performance enhancement. You should replace all StringBuffer uses with StringBuilder unless you need the synchronization (which you almost certainly don't). StringBuilder is almost always faster than StringBuffer。
这是从管方网站上摘录的一段话,大致意思:“StringBuilder是在j2se 1.5中新加的一个类,与StringBuffer相比他不是线程安全的,StringBuffer是线程安全的,但StringBuilder要比StringBuffer要快。”


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值