一、概念
当要对字符串经常进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
二、StringBuilder
具体看下列代码,详情看注释:
public class Test {
public static void main(String[] args) {
// 1、创建 StringBuilder 对象
StringBuilder sb = new StringBuilder();
// 2、添加元素
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
// 3、元素反转
sb.reverse();
// 4、转成字符串,这样可以使用字符串类中的方法
String str = sb.toString();
System.out.println(str);
}
}
运行结果:
dddcccbbbaaa
三、StringBuffer 类
然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
public class Test {
public static void main(String[] args) {
// 1、创建 StringBuilder 对象
StringBuffer sb = new StringBuffer();
// 2、添加元素
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
// 3、元素反转
sb.reverse();
// 4、转成字符串,这样可以使用字符串类中的方法
String str = sb.toString();
System.out.println(str);
}
}
运行结果:
dddcccbbbaaa