相違点は次のとおりです:
1) String クラスの内容は、一度宣言されると変更できません。変更されるのはメモリ ポインタのみですが、 StringBuffer クラスのオブジェクトの内容は変更可能です。
2) StringBuffer の場合、オブジェクトのインスタンス化は String のように代入によって直接完了することはできず、コンストラクター メソッドを通じて完了する必要があります。
3) StringBuffer は文字列の処理時に新しいオブジェクトを生成せず、メモリ使用量の点で string クラスよりも優れています。したがって、実際の使用において、挿入、削除などの文字列の変更が頻繁に必要な場合には、StringBuffer を使用するのが適しています。
オンライン教育ビデオ共有: java ビデオ
例: 文字列オブジェクトを変更できないとは、参照を変更できないということではなく、オブジェクト自体を変更できないことを意味します。
String a = “你好”;
このコード行は、a という String 型参照変数を宣言し、メモリ内に String オブジェクト (値 "Hello" を含む) を作成し、このオブジェクトの参照を変数 a に割り当てることを意味します。 。
a = “hello”;
このコード行の効果は、メモリ内に別の String オブジェクト (値 "hello" を持つ) を作成し、代入する代わりに、この新しいオブジェクトの参照を変数 a に代入することです。元の文字列オブジェクトをメモリに保存します。「hello」の文字列オブジェクト値は「hello」になります。
4) StringBuilder と StringBuffer の最大の違いは、StringBuilder のメソッドがスレッドセーフではない (同期的にアクセスできない) ことです。
5) StringBuilder は StringBuffer に比べて速度に優れているため、ほとんどの場合 StringBuilder クラスを使用することをお勧めしますが、アプリケーションでスレッド セーフが必要な場合は StringBuffer クラスを使用する必要があります。
Java 関連の記事をさらに知りたい場合は、Java プログラミングの概要
を参照してください。以上がJavaのString、StringBuffer、StringBuilderの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。