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);
    }