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

Javaの文字列バッファと文字列ビルダーの違い


文字列バッファとStringBuilderはどちらも可変クラスであり、文字列の反転、文字列の連結などの文字列オブジェクトの操作を実行できます。文字列の新しいオブジェクトを作成せずに文字列を変更できます。文字列バッファはスレッドセーフですが、文字列ビルダーはスレッドセーフではありません。したがって、文字列バッファよりも高速です。また、string concat +演算子は、内部でStringBufferまたはStringBuilderクラスを使用します。違いは次のとおりです。

文字列バッファ 文字列ビルダー
Sr。いいえ。 キー
1
基本
StringBufferは、Javaの初期リリースで導入されました
Java5で導入されました
2
同期
同期されています
同期されていません
3 パフォーマンス
スレッドセーフです。そのため、複数のスレッドに同時にアクセスすることはできないため、処理速度は遅くなります。
スレッドセーフではないため、文字列バッファよりも高速です
4 ミュータブル
変更可能です。オブジェクトを作成せずに文字列を変更できます
それも変更可能です
5
ストレージ
ヒープ
ヒープ

StringBuilderの例

public class StringBuilderExample{
   public static void main(String[] args){
      StringBuilder builder=new StringBuilder("Hi");
      builder.append("Java 8");
      System.out.println("StringBuilderExample" +builder);
   }
}

StringBufferの例

public class StringBufferExample{
   public static void main(String[] args){
      StringBuffer buffer=new StringBuffer("Hi");
      buffer.append("Java 8");
      System.out.println("StringBufferExample" +buffer);
   }
}

  1. Javaでのイテレータと列挙の違い

    IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。 コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります: * hasMoreElements() * nextElement() 一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります- * hasNe

  2. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり