String の追加機能にもかかわらず StringBuilder を使用する理由?
Java の String クラスはコンテンツを追加するためのメソッドを提供しますが、不変です。つまり、内部を変更できません。州。その結果、追加操作ごとに新しい String オブジェクトが作成され、追加を繰り返すための非効率なプロセスになります。
Enter StringBuilder
StringBuilder は、変更可能であることでこの制限に対処しています。その append メソッドは基礎となる文字配列を変更するため、追加のたびに新しいオブジェクトを生成する必要がなくなります。この効率は、ループや複雑な文字列操作で特に役立ちます。
比較:
次の例を考えてみましょう:
String str = ""; for (int i = 0; i < 500; i++) { str += i; }
このコードでは 500 が作成されます。新しい String オブジェクトにより、重大なオーバーヘッドが発生します。対照的に、StringBuilder を使用すると、
StringBuilder sb = new StringBuilder(); for (int i = 0; i < 500; i++) { sb.append(i); }
新しい String オブジェクトを作成せずに同じ String オブジェクトが追加されます。
自動変換
コンパイラは連結を自動的に変換します。式 (例: "String d = a b c") を StringBuilder ベースに変換操作:
String d = new StringBuilder(a).append(b).append(c).toString();
その他のオプション:
StringBuilder に加えて、Java は同期メソッドを持つ StringBuffer を提供します。これは主に、スレッドセーフなアクセスが必要なマルチスレッドのシナリオで役立ちます。
以上がString に Append メソッドがある場合に StringBuilder を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。