StringBufferとStringBuilderの違いと関連付け(ソースレベル)
730 ワード
彼らの同じ点はAbstractStringBuilderクラスを継承しており、すべてのメソッドは基本的に同じですが、StringBufferはスレッドが安全で、メソッドの前にsynchronizedキーワードがあります.彼らの初期化サイズはいずれも16であり,拡張メカニズムは新容量=(旧容量+1)である.×2
public StringBuilder() {
super(16);
}
public StringBuffer() {
super(16);
}
void expandCapacity(int minimumCapacity) {
int newCapacity = (value.length + 1) * 2;
if (newCapacity < 0) {
newCapacity = Integer.MAX_VALUE;
} else if (minimumCapacity > newCapacity) {
newCapacity = minimumCapacity;
}
value = Arrays.copyOf(value, newCapacity);
}