String和StringBuffer有什么区别

   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.println("testStringBuffer:" + runTime);
}

public static void main(String[] args) {
    testString();
    testStringBuffer();
}

}

   程序的运行结果为

testString:154
testStringBuffer:0

从程序的运行结果可以看出,当一个字符串需要经常被修改的时候,使用StringBuffe比使用String的性能要好很多。

posted @ 2022-01-07 22:12  杜嘟嘟  阅读(893)  评论(0)    收藏  举报