回顾StringBuilder和StringBuffer

String 是不可变字符串,不可修改,频繁对String 修改会产生许多对象,垃圾数据。

String类中提供了许多方法,但没有增删改等操作。频繁对字符串进行修改操作,建议使用StringBuffer和StringBuilder,它们是可变字符串,这两个类的用法基本一致。

 StringBuffer stringBuffer=new StringBuffer("Hello");
        stringBuffer.append("你好");
        System.out.println(stringBuffer);
        stringBuffer.append("哈哈哈").append("chkdjhckd");
        System.out.println(stringBuffer);
        stringBuffer.insert(1,"cjdhcjdch");
        System.out.println(stringBuffer);
        stringBuffer.delete(1,4);//[1,4)
        System.out.println(stringBuffer);
        stringBuffer.deleteCharAt(1);
        System.out.println(stringBuffer);
        stringBuffer.setCharAt(1,'c');//将索引为1替换为‘c’;
        stringBuffer.setLength(6);//设置保留的字符串长度
        System.out.println(stringBuffer);
        stringBuffer.reverse();
        System.out.println(stringBuffer);
        String s = stringBuffer.toString();
        System.out.println(s);

区别:

StringBuffer

1、线程安全(多个人同时访问一个字符串不会出现问题)

2、效率低

StringBuilder

1、线程不安全(多个人访问一个字符串会出现问题)

2、效率高

public class Test02_性能对比 {
	public static void main(String[] args) {
		// String str = "";
		StringBuffer sb = new StringBuffer();

		long start = System.currentTimeMillis(); // 获取当前时间的毫秒值
		for (int i = 1; i <= 100000; i++) {
			// str += "hello";
			sb.append("hello");
		}
		long end = System.currentTimeMillis();

		System.out.println("花费的时间:" + (end - start) + "ms");
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值