この StringBuffer クラスによって提供される文字列が変更されます。文字データが変更されることがわかっている場合は、StringBuffer を使用できます。通常、文字データを動的に構築するには StringBuffers を使用します。
Java には、文字操作を担当する 3 つのクラスがあります。
1.キャラクターは単一のキャラクターで動作します。
2.String は文字列を操作します。不変クラス。
3.StringBuffer も文字列を操作しますが、これは変数クラスです。
弦:
これはオブジェクトであり、プリミティブ型ではありません。
これは不変オブジェクトであり、一度作成されると、その値は変更できません。
既存の String オブジェクトを変更するには、新しいオブジェクトを再作成し、そこに新しい値を保存する必要があります。
String は最終クラスであるため、継承することはできません。
文字列バッファ:
これは変更可能なオブジェクトであり、String のように再確立されることはなく、コンストラクターを通じてのみ確立されます。
StringBuffer sb = new StringBuffer();
注: ペイシンボルを使用して支払うことはできません。
sb = "ここへようこそ!";//エラー
オブジェクトが作成されると、メモリ領域がメモリ内に割り当てられ、最初に null が StringBuffer に保存されます。
値を支払うときに、その append メソッドを使用できます。
sb.append("こんにちは");
上記はインターネット上で一般的な抜粋ですが、以下は私自身の追加の洞察です。
アドレスは変更できませんが、長さと内容は変更できます。 append() メソッドは、予約されたメモリを超えた場合にメモリを 2 倍に追加します。
効率の比較: StringBuffer は String よりも優れています。 StringBuffer にはスペースが予約されており、追加が繰り返されるため、1 つのオブジェクトに対してのみ動作します。文字列は変更できず、変更するにはオブジェクトを繰り返し作成することしかできません。 ――文字列の追加、置換、変更、挿入、削除を頻繁に行う場合は、StringBuffer を使用するのが最適です。 String を使用する必要がある場合は、StringBuffer を使用して toString() を呼び出し、String に変換できます。
私のマシンはかなりゴミで、実行後の結果は次のとおりです。
ストリング実行時間: 164593
------------------
StringBuffer 実行時間: 31
さらに、String には contains メソッドがありますが、StringBuffer にはありません。 Contains は「含む」という意味です。ここで、contains メソッドを思い出してください。
実行結果は、
真実