可能最大的不可变性争议在于它对并发的好处。如果您知道对象永远不会更改,则无需锁定和保护该对象。随着我们的多核处理器中心增加,这种好处变得越来越令人信服。当然,也存在权衡。正如您所提到的,字符串缓冲区可以在应用程序中执行大量字符串操作时优于新字符串的常量分配。幸运的是,大多数语言都包含一个隐藏在库中的字符串缓冲区。默认情况下,不可变字符串更安全。在某些情况下,它们更快。如果您发现它们不适合您,您总可以换成缓冲区。