1. StringBuffer类
1.StringBuffer:字符缓冲区-->里面存储的可变的字符序列,但是他的类型是StringBuffer类型
1.1 StringBuffer常用方法
1.构造方法:
public StringBuffer():空参构造
public StringBuffer(String str):输入String类型有参构造
"hello"-->容量大小-->16+5
中文特殊-->超过某个容量值,系统会重新分配
这两个构造方法在默认容量基础上会自己追加内容,不需要指定容量
public StringBuffer(int capacity):指定容量大小
2.获取功能:
public int length():获取字符串缓冲区的长度
public int capacity():获取缓冲区的容量大小
字符串缓冲区默认16个初始容器
3.添加功能:
public StringBuffer append(任何数据类型):追加功能,返回时字符串缓冲区本身在缓冲区的默认的字符序列后面依次追加
public StringBuffer insert(int offest,char c/String str):
返回值所示在指定位置插入指定的字符或者字符串
4.反转功能:
public StringBuffer reverse():返回字符串缓冲区本身
5.截取功能:
public subString(int beginIndex):从指定位置截取到末尾
public subString(int beginIndex,int endIndex):从指定位置开始,截取到endIndex-1
6.
三种String和StringBuffer之间的相互转换
(1)通过append()方法拼接String类型
String-->StringBuffer
(2)通过StringBuffer(String str)有参构造
String-->StringBuffer
(3)通过String(StringBuffer buffer)有参构造
StringBuffer-->String
(4)通过StringBuffer的toString方法赋值给String类型
StringBuffer-->String
public class StringBufferTest {
public static void main(String[] args) {
//已知String---->StringBuffer
String s = "hello" ;
// StringBuffer sb = s ;//两个类型不一样的
//方式1:无参构造方法+append()追加
//方式2:有参构造直接StringBuffer(String s)
StringBuffer sb = new StringBuffer(s) ;
System.out.println("sb:"+sb) ;
System.out.println("--------------------------------------") ;
//StringBuffer----String
StringBuffer buffer = new StringBuffer("JavaEE") ;
//方式1:public String(StringBuffer buffer)
String str = new String(buffer) ;
System.out.println("str:"+str); //"JavaEE"--->String类型了
//方式2:public String toString();
String result = buffer.toString();
System.out.println("result:"+result) ;
}
}
1.2 StringBuffer和StringBuilder的区别
1.共同点:具有相互兼容的API,都是支持可变的字符序列,不断在字符串缓冲区进行字符追加
2.不同点:
(1)StringBuffer线程安全的类-->通过操作-->执行效率低-->多线程(安全,类似于银行网站)
StringBuilder线程不安全的类-->不同步的操作-->执行效率高-->单线程(类似于论坛)
1.3 String和StringBuffer的区别
1.String是一个特殊的引用类型,形参不会改变实际参数
是常量,一旦被赋值,不能改变
2.StringBuffer是线程安全的一个类,支持可变的字符序列
形参影响实参