[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を使用することを推奨します.
Reference
この問題について([JAVA] String, StringBuffer, StringBuilder), 我々は、より多くの情報をここで見つけました https://velog.io/@devhoon/JAVA-String-differenceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol