1.概述
为了解决String字符串操作导致的内存冗余,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串,并且提供了很多方法,便于程序员开发。
StringBuffer和StringBuilder中都有char类型可变长数组作为字符串的保存空间。使用到的方法类型和ArrayList类似。
但两者又有不同:
StringBuffer 线程安全,效率较低
StringBuilder 线程不安全,效率较高
2.构造方法
StringBuffer();
创建一个未存储任何字符串信息的空StringBuffer空间,底层初始化一个16个字符char类型数组
StringBuffer(String str);
根据提供的String类型字符串创建对应的StringBuffer空间,
底层char类型数组的容量会根据str.length + 16决定,并且保存对应的str
/*
* StringBuffer构造方法演示
* StringBuilder同理
*/
public class Demo1 {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer();
StringBuffer stringBuffer2 = new StringBuffer("武汉加油!中国加油!!");
System.out.println(stringBuffer);
System.out.println(stringBuffer2.toString());
}
}
运行结果:
武汉加油!中国加油!!
3.添加方法
append(Everything)
在StringBuffer和StringBuilder对象中,添加另外的数据,并且当做字符串处理。
insert(int index, Everything)
在StringBuffer和StringBuilder对象中,在指定的下标位置,添加其他内容,并且当做字符串处理
package stringBuffer;
import stringBuffer.Demo2;
/*
* StringBuffer append 和