字串和不變性

不可變型別是在更改時在記憶體中建立物件的新版本而不是更改記憶體中現有物件的型別。最簡單的例子是內建的 string 型別。

使用以下程式碼,將 world 新增到單詞 Hello

string myString = "hello";
myString += " world";

在這種情況下,記憶體中發生的事情是,當你追加到第二行中的 string 時,會建立一個新物件。如果你在大型迴圈中執行此操作,則可能會導致應用程式出現效能問題。

string 的可變等價物是 StringBuilder

採取以下程式碼

StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");

當你執行它時,你正在記憶體中修改 StringBuilder 物件本身。