java-string類

與包裝類類似,String類也是不可變類,即對象一旦創建,就沒有辦法修改了。String類也聲明爲了final,不能被繼承,內部char數組value也是final的,初始化後就不能再變了。
String類中提供了很多看似修改的方法,其實是通過創建新的String對象來實現的,原來的String對象不會被修改。比如說,我們來看concat()方法的代碼:
public String concat(String str) { int otherLen = str.length(); if (otherLen == 0) { return this; } int len = value.length; char buf[] = Arrays.copyOf(value, len + otherLen); str.getChars(buf, len); return new String(buf, true);}
與包裝類類似,定義爲不可變類,程序可以更爲簡單、安全、容易理解。但如果頻繁修改字符串,而每次修改都新建一個字符串,性能太低,這時,應該考慮Java中的另兩個類StringBuilder和StringBuffer,我們在下節介紹它們。stringBuilder類提到如果字符串修改操作比較頻繁,應該採用StringBuilder和StringBuffer類,這兩個類的方法基本是完全一樣的,它們的實現代碼也幾乎一樣,唯一的不同就在於,StringBuffer是線程安全的,而StringBuilder不是。

發佈了132 篇原創文章 · 獲贊 15 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章