ホームページ  >  記事  >  Java  >  JavaにおけるStringとStringBufferの接続と違い

JavaにおけるStringとStringBufferの接続と違い

Y2J
Y2Jオリジナル
2017-04-27 13:14:001627ブラウズ

この記事では、Java における String と StringBuffer の違いの詳細な例に関する関連情報を主に紹介します。小さな例は、String と StringBuffer の時間と空間の使用量の違いをテストするために使用されます。 java String と StringBuffer の違いの詳細な例

String:

修正の
新しいオブジェクトを再作成して保存することがすべてですその中の新しい値。つまり、継承することはできませんコンストラクター

StringBuffer sb = new StringBuffer();

を介してのみ作成されます。オブジェクトが作成されると、メモリ領域がメモリ内に割り当てられ、最初にその append メソッドを通じて値が割り当てられます。 append("hello");


文字列接続操作における StringBuffer の効率は明らかに String よりも高いです:

String オブジェクトは不変オブジェクトであり、Sting に対する操作は毎回新しいオブジェクトを再作成して保存します。新しい値。StringBuffer オブジェクトがインスタンス化された後は、このオブジェクトのみが操作されます。 String と StringBuffer の間の時間と空間の使用量の違いをテストするために、ここに小さな例を書きました。

public class Test {  
  public static void main(String args[]) {  
    String str = "abc";  
    StringBuffer sb = new StringBuffer("abc");  
    Runtime runtime = Runtime.getRuntime();  
    long start = System.currentTimeMillis();  
    long startFreememory = runtime.freeMemory();  
    for (int i = 0; i < 10000; i++) {  
      str += i;  
      //测试StringBuffer时候把注释打开  
      //sb.append(i);  
    }  
    long endFreememory = runtime.freeMemory();  
    long end = System.currentTimeMillis();  
    System.out.println("操作耗时:" + (end - start) + "ms," + "内存消耗:"  
        + (startFreememory - endFreememory)/1024 + "KB");  
  }  
}

テスト結果:



String を使用して文字列の末尾に文字列を追加 10,000 回
演算時間: 1872ms、メモリ消費量: 1301KB

StringBuffer を使用して文字列の末尾に文字列を追加 10,000 回

動作時間:15ms、メモリ消費量:162KB

以上がJavaにおけるStringとStringBufferの接続と違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。