logo

StringBuffer と StringBuilder の違い

Java には、一連の文字を表す 3 つのクラス、String、StringBuffer、および StringBuilder が用意されています。 String クラスは不変クラスですが、StringBuffer クラスと StringBuilder クラスは変更可能です。 StringBuffer と StringBuilder の間には多くの違いがあります。 StringBuilder クラスは JDK 1.5 以降に導入されました。

StringBuffer と StringBuilder の違いのリストを以下に示します。

StringBuffer と StringBuilder の違い
いいえ。文字列バッファ文字列ビルダー
1)文字列バッファは 同期した つまり、スレッドセーフです。これは、2 つのスレッドが StringBuffer のメソッドを同時に呼び出すことができないことを意味します。StringBuilder は 非同期 つまり、スレッドセーフではありません。これは、2 つのスレッドが StringBuilder のメソッドを同時に呼び出すことができることを意味します。
2)文字列バッファは 効率が低い StringBuilder よりも。StringBuilder は もっと効率的 StringBuffer よりも。
3)StringBuffer は Java 1.0 で導入されましたStringBuilder は Java 1.5 で導入されました

文字列バッファの例

バッファテスト.java

// StringBuffer クラスの使用法を示す Java プログラム。 public class BufferTest{ public static void main(String[] args){ StringBufferbuffer=new StringBuffer('hello');バッファ.append('java'); System.out.println(バッファ); } }

出力:

 hellojava 

StringBuilder の例

ビルダーテスト.java

ブール値を文字列に変換する
 //Java Program to demonstrate the use of StringBuilder class. public class BuilderTest{ public static void main(String[] args){ StringBuilder builder=new StringBuilder('hello'); builder.append('java'); System.out.println(builder); } } 

出力:

 hellojava 

StringBuffer と StringBuilder のパフォーマンス テスト

StringBuffer クラスと StringBuilder クラスのパフォーマンスをチェックするコードを見てみましょう。

ConcatTest.java

 //Java Program to demonstrate the performance of StringBuffer and StringBuilder classes. public class ConcatTest{ public static void main(String[] args){ long startTime = System.currentTimeMillis(); StringBuffer sb = new StringBuffer(&apos;Java&apos;); for (int i=0; i<10000; i++){ sb.append('tpoint'); } system.out.println('time taken by stringbuffer: ' + (system.currenttimemillis() - starttime) 'ms'); starttime="System.currentTimeMillis();" stringbuilder sb2="new" stringbuilder('java'); for (int i="0;" i<10000; sb2.append('tpoint'); stringbuilder: < pre> <p> <strong>Output:</strong> </p> <pre> Time taken by StringBuffer: 16ms Time taken by StringBuilder: 0ms </pre> <hr></10000;>