还有什么其他原因使Java中的字符串不可变?

时间:2016-02-03 06:15:17

标签: string immutability

我知道Java系统将字符串视为不可变类型,因为字符串总是以其固定长度初始化。另一个原因是Java希望在许多安全线程中创建任何字符串,这是任何用户都不会修改的。但是,因为我真的想学习一个完整的清单,列出为什么Java的字符串是不可变的,所以我想知道上面的其他原因是否还有其他原因?

1 个答案:

答案 0 :(得分:1)

另一个原因是效率:如果字符串是可变的,每次调用Class.getNameSystem.getProperty或基本上任何返回字符串的方法都必须创建一个新的副本。如果没有,您可以执行以下操作:

"".getClass().setCharAt(11, 'p')

从那时起,java.lang.String类将被称为java.lang.Spring