字串和不變性
不可變型別是在更改時在記憶體中建立物件的新版本而不是更改記憶體中現有物件的型別。最簡單的例子是內建的 string
型別。
使用以下程式碼,將 world
新增到單詞 Hello
上
string myString = "hello";
myString += " world";
在這種情況下,記憶體中發生的事情是,當你追加到第二行中的 string
時,會建立一個新物件。如果你在大型迴圈中執行此操作,則可能會導致應用程式出現效能問題。
string
的可變等價物是 StringBuilder
採取以下程式碼
StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");
當你執行它時,你正在記憶體中修改 StringBuilder
物件本身。