javaSE复习之——StringBuffer类
StringBuffer的概述
1、它是
字符串缓冲区
(容器),底层默认是长度为16的字符数组
。2、StringBuffer是
线程安全
的,StringBuilder是线程不安全
的3、线程安全速度更
慢
,线程不安全速度更快
。
StringBuffer与String的区别
1、String赋的值它是
不能被改变的
,只能丢弃重新创建,如果字符拼接过多会产生过多的垃圾
。2、StringBuffer赋的值是
可以被改变的
,类似字符拼接建议
用这个类,因为不会产生过多的垃圾
。2、虽然它们都是
引用数据类型
,但是String做参数
传递时是和基本数据类型一样的,而StringBuffer传递的只是对创建对象的引用,也就是地址值。
StringBuffer的方法
属性获取:
.capacity()
返回当前容量.length()
返回实际长度数据添加:
.append()
把任何数据传入字符串缓冲区,然后返回缓冲区对象本身。.insert(索引,字符串)
在任意位置之后将任意类型数据插入字符串缓冲取内,返回本身。数据删除:
.deleteCharAt()
删除任意索引的数据,返回本身。.delete(索引1,索引2)
删除从索引1开始到索引2位置的数据,返回本身。(包含头不包含尾)数据替换反转:
.reverse()
字符反转.replace(开始索引,结束索引,要替换的数据)>
字符替换数据截取:(截取后返回的数据不是表示容器本身,而是返回一个String)
.subString(索引)
从索引开始,截取到字符串末尾。.subString(开始,结尾)
从开始位置截取字符串到结尾位置,不包括结尾索引。
StringBuffer的构造方法特点
1、无参构造默认容量为
16个字符
2、传入整数,比如传入10,那么这个容器的
容量
就为10个字符3、传入一个字符串,比如传入:啊啊,那么实际长度为4,
字符串缓冲区容量为20
4、如果
内部缓冲区溢出
,那么容量自动增大。5、StringBuffer重写了toString()方法,显示的是它的属性值,也就是它的元素。
StringBuffer注意事项
1、不要利用重新创建另一个对象来试图
清空容器
,这只是引用了另一个容器对象
而已,之前的那个容器并没有被清空,可以利用delete
方法清空容器。2、因为String与任意字符串
相加
的底层实现就是使用容器,并且String的值是不能修改的
,它只能把之前的数据做垃圾处理重新创建一个数据,这样会不断的产生垃圾
,所以在类似字符串数组
转换成字符串
或者字符串拼接
(String s = s1 + s2;) 的例程中使用容器最好。
StringBuffer与String的互转:
StringBuffer转String
1、创建一个String对象,把容器传进去。
2、使用toString()方法。
3、使用subString()方法。
String转StringBuffer
1、创建一个StringBuffer对象,传入字符串即可。
2、通过append()方法把字符串加入到容器内。