StringBuffer

StringBuffer

StringBuffer与StringBuilder的区别:StringBuffer是线程安全的,都有synchronized关键字修饰,StringBuilder是非线程安全的。

public class StringBufferDemo {

	public static void main(String[] args) {
		//String与StringBuffer,都可以处理字符串
		//String在执行替换,修改等操作时候源字符串没有发生改变,想要改变除非赋值
		//StringBuffer执行修改的时候,源串内容发生改变
		//什么时间用??如果进行大量的增删改替换等操作就用StringBuffer,其他的就用String
		
		//StringBuilder的使用和StringBuffer一样
		String s1="123";
		s1.replace("123", "abcd");
		System.out.println(s1);//没有改变,不是abcd,123
		
		StringBuffer stringBuffer=new StringBuffer("123");
		stringBuffer.replace(0, 1, "abcd");
		System.out.println(stringBuffer);//改变了,abcd23
		
		//stringBuffer 有append,delete,insert,replace替换,reverse逆置
		stringBuffer.delete(2, 4);//包括前,不包括后
		System.out.println(stringBuffer);//ab23

		//f1();
		f2();
	}
	//StringBuffer
	private static void f2() {
		long startDate=System.currentTimeMillis();
		String s="abcdefghijklmnopqrstuvwxyz0123456789";
		Random random=new Random();
		//String code="";
		StringBuffer stringBuffer=new StringBuffer();
		for(int i=1;i<=4;i++){
			int n=random.nextInt(s.length() );
			stringBuffer.append( s.charAt(n));
		}
		System.out.println();
		long endDate=System.currentTimeMillis();
		System.out.println("运行时间:"+ (endDate-startDate));//ms
	}
	//String
	   private static void f1() {
		long startDate=System.currentTimeMillis();
		String s="abcdefghijklmnopqrstuvwxyz0123456789";
		Random random=new Random();
		String code="";
		for(int i=1;i<=10000;i++){
			int n=random.nextInt(s.length() );
			code=code+s.charAt(n);
		}
		System.out.println(code);
		long endDate=System.currentTimeMillis();
		System.out.println("运行时间:"+ (endDate-startDate));//ms
	}

}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李拜天不上班.

感谢支持,承蒙厚爱!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值