Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの文字列よりもStringBuffer/StringBuilderを使用する場所はどこですか?


  • Stringクラスオブジェクトは不変ですが、StringBufferオブジェクトとStringBuilderオブジェクトは変更可能です。
  • StringBuilderが同期されていないときに、StringBufferが同期されます。
  • 連結演算子「+」は、StringBufferまたはStringBuilderのいずれかを使用して内部的に実装されます。
  • Stringオブジェクトは不変であるため、Object値が変更されない場合は、StringClassを使用してください。
  • Object値が変更される可能性があり、単一のスレッドからのみアクセスされる場合は、StringBuilderが同期されていないため、StringBuilderを使用してください。
  • Object値が変更される可能性があり、複数のスレッドによって変更される場合は、StringBufferが同期されているため、StringBufferを使用してください。


  1. JavaのStringIndexOutOfBoundsExceptionとは何ですか?

    文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。 文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。 String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint"; 文字列には文字の配列

  2. JavaでStringの代わりにStringBufferを使用する必要があるのはなぜですか?

    StringBufferは、スレッドセーフで変更可能な文字シーケンスです。 Stringクラス(不変)とは異なり、StringBufferクラスは可変です。つまり、StringBufferオブジェクトの内容を変更できます。 StringBufferクラスの文字列を変更する場合、新しいStringオブジェクトを作成するのではなく、元の文字列自体を直接操作します。 このため、StringBufferクラスは、Stringクラスとは異なるメソッドのセットを提供します。これらのメソッドはすべて、文字列を含むバッファーを直接操作します。 StringBufferは、new演算子を使用し、Stri