StringBuffer是使用緩沖區的,本身也是操作字符串的,但與String類不同,String類的內容一旦聲明后是不可改變的,改變的只是其內存的指向,而StringBuffer類的對象內容是可以改變的。
對於StringBuffer而言本身就是一個操作類,不能像String那樣直接通過賦值的方式完成對象實例化,必須通過構造方法的方式完成。
1 public class TestStringBuffer { 2 public static void main(String args[]){ 3 StringBuffer str1 = new StringBuffer("hello"); 4 String str2 = "hello"; 5 add(str1); 6 add(str2); 7 System.out.println(str1); 8 System.out.println(str2); 9 } 10 public static void add(String str){ 11 str += " world"; 12 } 13 public static void add(StringBuffer str){ 14 str.append(" world"); 15 } 16 }
可以看到StringBuffer對象可以修改內容,而String對象就不能改變其內容了。
所以StringBuffer類在字符串需要經常改變時使用。