String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
以下是三种类型的追加操作代码。
public static void test4()
{
String text = "" ;
long beginTime = System.currentTimeMillis();
for ( int i= 0 ;i< 100000 ;i++)
text = text + i;
long endTime = System.currentTimeMillis();
System.out.println("执行时间:" +(endTime-beginTime));
StringBuffer sb1 = new StringBuffer ( "" );
beginTime = System.currentTimeMillis();
for ( int i= 0 ;i< 100000 ;i++)
sb1.append(String.valueOf(i));
endTime = System.currentTimeMillis();
System.out.println("执行时间:" +(endTime-beginTime));
StringBuilder sb = new StringBuilder ( "" );
beginTime = System.currentTimeMillis();
for ( int i= 0 ;i< 100000 ;i++)
sb.append(String.valueOf(i));
endTime = System.currentTimeMillis();
System.out.println("执行时间:" +(endTime-beginTime));
}
执行时间:38134
执行时间:22
执行时间:10
在此可以看出单线程运行时,StringBuilder的性能最好。
1.如果要操作少量的数据用 = String
2.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
3.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder