String Buffer

Prerequisites:

字串存放位置

String Buffer繼承AbstractStringBuilder。

字串存放位置是在AbstractStringBuilder中的value變數,不是final,char[]陣列是物件,是存在Heap中。

1
2
3
4
    char[] value;
    AbstractStringBuilder(int capacity) {
        value = new char[capacity];
    }

String Buffer vs String

String存放字串的位置,是final的,所以更新字串,就是建立新的物件,因為final不能被修改內容。

String Buffer存放字串的位置,不是final,所以更新字串,是更新物件內容,因為不用重新建立物件,所以效率比較快。

建構子

StringBuffer的空建構子,預設建立char[16]的大小。

1
2
3
  public StringBuffer() {
      super(16);
  }

可自訂char[]大小。

1
StringBuffer stringBuffer = new StringBuffer(100);

使用字串建立StringBuffer。

1
StringBuffer stringBuffer = new StringBuffer("Hello World");

建立char[字串長度 + 16]的大小。

1
2
3
4
public StringBuffer(String str) {
    super(str.length() + 16);
    append(str);
 }

StringBuffer轉String

1
2
3
4
5
6
7
8
9
public class Test {
  public static void main(String[] args) {
    StringBuffer sb = new StringBuffer("Hello World");
    String str1 = sb.toString();
    String str2 = new String(sb);
    System.out.println(str1);
    System.out.println(str2);
  }
}
Hello World
Hello World

StringBuffer常用方法

results matching ""

    No results matching ""