StringBuffer (Buffer学名为缓冲区)
字符串的组成原理就是通过该类实现的。
StringBuffer是一个容器。可以对字符串内容进行增删。StingBuffer是可变长度的。
很多方法与String相同。
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。
* StringBuffer,字符串缓冲区。
* 特点:
* 1,可以存储任意类型的数据。
* 2,长度不固定。
* 3,无论存储什么类型的元素,存储进来以后最终都会变成字符串。
*
*
* 容器常见功能:
* 1,添加,插入。
* append insert./大量的重载
* 2,删除。
* 3,替换。
@Test
public void test00(){
// 创建一个字符串缓冲区对象。
StringBuffer sb = new StringBuffer();
// 添加元素。
// sb.append("abc").append(true);
// sb.append(new Object());
// System.out.println(sb.toString());
// System.out.println(sb.length());
//想要在任意位置插入指定的数据。
sb.append("abcd");
// sb.insert(2, "qq");//abqqcd,指定位置上开始插入
// System.out.println(sb);
//删除。
// sb.delete(1, 3);//包含头不包含尾
// System.out.println(sb);
//替换/。
// sb.replace(1, 4, "ak47");
// sb.reverse();
// sb.setCharAt(2, ‘K‘);
// System.out.println(sb);
sb.setLength(3);//前3个字符
sb.setLength(6);//缓冲区已经被前一条语句修改过了
System.out.println(sb+"-");
String str = "a"+7+‘q‘+true;
System.out.println(str);
str = new StringBuffer().append("a").append(7).append(‘q‘).append(true).toString();
System.out.println(str);
}StringBuilder特点
* JDK1.5版本出现了StringBuilder。
* StringBuffer是线程安全的。有锁。多线程访问同一个容器。
* StringBuilder是线程不安全的。没锁。效率高
原文地址:http://8477424.blog.51cto.com/8467424/1775656