String 为什么设计为不可变?修改字符串时发生了什么?
参考答案
String 的字符内容建立后不能通过其公开 API 原地修改。拼接、替换等操作会产生新的字符串结果,原对象仍保持原值。
题目解析
不可变有利于安全共享和稳定的哈希值;但循环中大量拼接可能产生许多中间对象,通常用 StringBuilder 累积。
String 的字符内容建立后不能通过其公开 API 原地修改。拼接、替换等操作会产生新的字符串结果,原对象仍保持原值。
不可变有利于安全共享和稳定的哈希值;但循环中大量拼接可能产生许多中间对象,通常用 StringBuilder 累积。