document.write('
String用于字符串操作,属于不可变类,而StringBuffer也是用于字符串操作,不同之处是StringBuffer属于可变类。
String是不可变类,也就是说,String对象一旦被创建,其值将不能被改变,而StringBuffer是可变类,当对象被创建后,仍然可以对其值进行修改。如
果一个字符串经常需要被修改的时候,使用StringBuffer有更高的效率。
为了更好地说明这一问题,下面分析一个示例。
public class Test
{
public static void testString()
{
String s="Hello";
String s1="world";
long start=System.currentTimeMillis();
for(int i=0;i<10000;i++)
{
s+=s1;
}
long end=System.currentTimeMillis();
long runTime=(end-start);
System.out.println("testString:"+runTime);
}
public static void testStringBuffer()
{
StringBuffer s=new StringBuffer("Hello");
String s1="world";
long start=System.currentTimeMillis();
for(int i=0;i<10000;i++)
{
s.append(s1);
}
long end=System.currentTimeMillis();
long runTime=(end-start);
System.out.primln("testStringBuffer:"+runTime);
}
public static void main(String[] args)
{
testStfing();
testStringBuffer();
}
}
程序的运行结果为:
testString:1760
testStringBuffer:3
从程序的运行结果可以看出,当一个字符串需要经常被修改的时候,使用StringBuffer比使用String的性能要好很多。
');