常用类--String缓冲类

1 特点

定义:线程安全的可变字符序列,用于表示可修改的字符串。
作用:创建StringBuffer类的对象后,可以随意修改、变更字符串的内容。
(1)字符串缓冲器(容器)
(2)长度是可变的,可以存储任意数据类型,但是不同数据类型都会先转为字符串形式之后在进行存储
(3)提供了可以改变该序列的长度和内容的方法
(4)所有的数据最终都需要变成字符串

2 使用方法

(1)追加 append();
(2)插入 insert();
(3)移除 delete();
(4)替换 replace();

public static void main(String[] args) {
	//创建字符串缓冲区(StringBeffer对象)
	//调用无参构造方法,默认初始容量为16,如果超过容量会继续进行扩容
	StringBuffer sb = new StringBuffer();
	
	//	向容器中添加数据
	sb.append("abc");		//结果:abc
	sb.append(true);		//结果:abctrue
	sb.append("1").append("x");	//结果:abctrue1x
	//多次调用append()方法的过程叫方法调用链
	
	//	在指定的位置进行添加
	sb.insert(1, "coco");//结果:acocobctrue1x
	
	//	移除指定区间(位置)数据
	sb.delete(2, 10);//结果:ace1x
	sb.deleteCharAt(3);//结果:acex
			
	//	 替换数据
	sb.replace(0, 2, "666");//结果:666ex
	}

3 可变字符序列转为字符串

StringBuffer类只是一个容器,是用来对可变字符序列的长度和内容进行操作的,其并不等价于字符串。若想使用String类的方法,要先将 StringBuffer字符串缓冲区转为String数据类型类型在进行调用String的相关方法。
转为字符串使用toString()方法。

StringBuffer sb1 = new StringBuffer();
String s =sb1.append("coco").append(123).toString();	
System.out.println(s);

4 字符串和连接符内部原理

String s1 = "coco--"+5+"--xiaoran";
//内部原理	
s1 = new StringBuffer().append("coco--").append(5).append("--xiaoran").toString();
System.out.println(s1);
//结果:coco--5--xiaoran

5 改进:StringBuilder类(不同步)

场景:多个人在访问一个StringBuffer对象时,
小红:插入insert();
小明:追加append();
小王:移除delete();
如果这几个人同时操作数据就会出现问题,StringBuffer类就添加了线程锁。同一时间只能有一个人访问,等这个人操作完数据之后,下个人才能访问。这样就保证了数据的安全性,但同时效率不高。就引入了StringBuilder类。
被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。

6 StringBuffer和StringBuilder区别

StringBuffer:线程安全,同步的,效率低;
StringBuilder:线程不安全的,不同步的,效率高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值