java之StringBuffer類詳解。本站提示廣大學習愛好者:(java之StringBuffer類詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java之StringBuffer類詳解正文
StringBuffer
線程平安的可變字符序列。
StringBuffer源碼剖析(JDK1.6):
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence
StringBuffer類被final修飾,可知StringBuffer類不能被承繼。
StringBuffer中的大局部辦法都有synchronized修飾。有些雖然沒有synchronized修飾,但是經過調用完成同步。因而StringBuffer是線程平安的。
StringBuffer中的大局部辦法都是直接調用的AbstractStringBuilder類中的辦法。AbstractStringBuilder類詳見java之AbstractStringBuilder類詳解。
結構器
1、結構一個沒有字符的字符串緩沖區,默許初始容量為16。
public StringBuffer() {
super(16);
}
2、結構一個沒有字符的字符串緩沖區,並指定初始容量。
public StringBuffer(int capacity) {
super(capacity);
}
3、結構一個字符串緩沖區,並初始化為指定的字符串。初始容量為16加上字符串參數的長度。
public StringBuffer(String str) {
super(str.length() + 16);
append(str);
}
4、與上個結構器相似。
public StringBuffer(CharSequence seq) {
this(seq.length() + 16);
append(seq);
}
測試:
public static void main(String[] args) {
// 運用無參結構器
StringBuffer s1 = new StringBuffer();
System.out.println(s1.length());// 0
System.out.println(s1.capacity());// 16
// 指定容量
StringBuffer s2 = new StringBuffer(10);
System.out.println(s2.capacity());// 10
// 初始化為指定的字符串
StringBuffer s3 = new StringBuffer("abc");
System.out.println(s3.capacity());// 19
System.out.println(s3);// abc
}
更多內容詳見:
java之AbstractStringBuilder類詳解
java之StringBuilder類詳解