[JAVA] String, StringBuffer, StringBuilder


勉強しながら、内容を整理して、大切に保管したい


JavaはString、StringBuffer、StringBuilderと呼ばれる文字列クラスです.
3種類あります.

1.String、StringBuffer、StringBuilderの違い


String:作成後も空間は変わらない
StringBuffer、StringBuilder:空き容量が不足している場合にバッファサイズの可変値を柔軟に変更

2.StringBufferとStringBuilderの違い


StringBuffer:同期をサポートし、マルチスレッド環境で安全に動作
StringBuilder:同期はサポートされておらず、単一スレッド環境向けに設計されています.
StringBuilderのシングルスレッド環境での動作速度はStringBufferよりも速い

3.Stringクラスの使用


Stringでは内部文字列は変更できません.上記のような不変の特徴を持っているからです.
文字列を変更するたびに、新しい文字列が返されます.
String str = "ABC";
str += "DEF";
str変数のABC値はDEFが追加されたことを示しますが、Stringオブジェクトは内部データを変更できないため、str変数が新しく作成したStringオブジェクトを参照する新しいStringオブジェクトが作成されます.
既存のStringオブジェクトは、デバイスセットがメモリを解放するのを待つようになります.
文字列プラス記号演算子を使用すると、オブジェクトの作成が続行され、プログラムのパフォーマンスが低下します.
凸文字列を変更または追加する場合は、StringではなくStringBufferとStringBuilderを使用することをお勧めします.

スピード



Stringの場合、concatまたは+が1000回を超えると速度が遅く、効率が低下するため、StringBufferまたはStringBuilderを使用することを推奨します.