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的性能要好很多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM