1. 程式人生 > >String類 和 StringBuilder類的區別

String類 和 StringBuilder類的區別

知識點:

java.lang.String類
字串是常量 ; 它們的值在建立之後不能更改。
String實現字串加法:就會在記憶體中建立很多字串佔用記憶體,
佔用記憶體越多,程式的效率就越低。

java.lang .StringBuilder類:
字串緩衝區,可以提高字串的效率,支援可變的字串.
StringBuilder實現字串加法,始終是一個數組,佔用記憶體少, 所以效率高。

用到的知識:
System.currentTimeMills() / / 獲取毫秒值.
public StringBuilder append(…): 新增任意型別的字串

案 例 :

//請使用程式碼實現
//   分別使用String的+=和StringBuilder的append方法對字串做100000次拼接,
//   計算String拼接100000次花費時間與StringBuilder拼接100000次所花費時間並列印。
public class Test09_currentTimeMillis {
    public static void main(String[] args) {
        // System類下的 currentTimeMillis方法
        long l = System.currentTimeMillis(); //開始的毫秒值
        String s = "ab"
; // String的+= 對字串做100000次拼接, for (int i = 0; i < 100000; i++) { s += "c" ; } long l1 = System.currentTimeMillis();//結束時的毫秒值 long s1 = l1 - l ; // 相減的時間就是所耗費的時間. System.out.println("String所耗費的時間是:"+s1+"毫秒"); // 建立一個StringBuilder物件 long time = System.currentTimeMillis(); StringBuilder sb = new
StringBuilder(); for (int i = 0; i < 100000; i++) { sb.append("abc"); } long time1 = System.currentTimeMillis(); System.out.println("StringBuilder類所耗費的時間是:"+(time1-time)+"毫秒"); } }

執行結果如下:
這裡寫圖片描述
根據執行結果顯示,很明顯StringBuilder效率更高。

知識點擴充:

鏈式程式設計:
builder.append(“hello”).append(“jian”).append(100).append(true);
System.out.println(builder);