Java String、StringBuffer、StringBuilderの違い


String


Javaでは、文字列のデフォルトデータ型はStringです.char[]を使用せずにStringというクラスを使用するのは、Stringがさまざまな方法を提供するためです.
String、StringBuffer、StringBuilderの違いを理解するために、例を使用して説明します.
String str = "hello";
str += " world";
System.out.println(str);
次のコードを実行すると、hello worldがコンソールに出力されます.これは単純な例にすぎませんが、メモリの変化から見ると、それほど簡単ではありません.Stringは不変の変数だからです.str+=「world」は、既存str(「hello」)の後行に「world」を追加するのではなく、新しいString hello worldをメモリに追加し、strにアドレスを割り当てます.

既存のhelloとオブジェクトのリンクが切断され、スタック内のGCによって削除されます.

StringBuffer, StringBuilder


StringBuffer、StringBuilder、Stringの重要な違いは、それらが可変ではないことです.これは、appendというメソッドを使用して展開とdeleteを折り畳むことができることを意味します.したがって、文字列を頻繁に変更するコードでは、StringよりもStringBufferとStringBuilderの方がメモリ管理と速度が向上します.
では、StringBufferとStringBuilderの違いは何でしょうか.最大の違いは、StringBuilderが同期をサポートしていないため、マルチスレッドでは安定性が低いが速度が速いという利点があり、StringBufferはマルチスレッド環境では安定性が高いが速度が遅いという欠点がある.
注意:https://ifuwanna.tistory.com/221