字符串和不变性

不可变类型是在更改时在内存中创建对象的新版本而不是更改内存中现有对象的类型。最简单的例子是内置的 string 类型。

使用以下代码,将 world 添加到单词 Hello

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

在这种情况下,内存中发生的事情是,当你追加到第二行中的 string 时,会创建一个新对象。如果你在大型循环中执行此操作,则可能会导致应用程序出现性能问题。

string 的可变等价物是 StringBuilder

采取以下代码

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

当你运行它时,你正在内存中修改 StringBuilder 对象本身。