この記事では、Java における String と StringBuffer の違いの詳細な例に関する関連情報を主に紹介します。小さな例は、String と StringBuffer の時間と空間の使用量の違いをテストするために使用されます。 java String と StringBuffer の違いの詳細な例
String:
修正の
新しいオブジェクトを再作成して保存することがすべてですその中の新しい値。つまり、継承することはできませんコンストラクター
を介してのみ作成されます。オブジェクトが作成されると、メモリ領域がメモリ内に割り当てられ、最初にその 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
動作時間:15ms、メモリ消費量:162KB
以上がJavaにおけるStringとStringBufferの接続と違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。