当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

Java StringBuffer 和 StringBuilder 类 - 图1

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。 StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类

  1. public class RunoobTest{
  2. public static void main(String args[]){
  3. StringBuilder sb = new StringBuilder(10);
  4. sb.append("Runoob..");
  5. System.out.println(sb);
  6. sb.append("!");
  7. System.out.println(sb);
  8. sb.insert(8, "Java");
  9. System.out.println(sb);
  10. sb.delete(5,8);
  11. System.out.println(sb);
  12. }
  13. }

过程:
Java StringBuffer 和 StringBuilder 类 - 图2

Runoob.. Runoob..! Runoob..Java! RunooJava!

然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

  1. public class Test{
  2. public static void main(String args[]){
  3. StringBuffer sBuffer = new StringBuffer("hello");
  4. sBuffer.append("Gre");
  5. sBuffer.append("mm");
  6. sBuffer.append("ie");
  7. System.out.println(sBuffer);
  8. }
  9. }
  10. //helloGremmie

StringBuffer 方法

image.png
image.png
image.png