可能重复:
Why can't strings be mutable in Java and .NET?
What's the advantage of a String be Immutable?
任何人都可以告诉我为什么String类被创建为不可变类, 这种设计方法背后有任何正当理由吗?
请分享您的想法
答案 0 :(得分:2)
因为如果String类是而不是 final,那么你可以声明一个String的子类,它会破坏String类的任意数量的契约,尤其是 immutability ,并且对毫无戒心的程序员造成严重破坏。
想象:
class MyString extends String {
// Override methods which mutate this instance...
}
现在每当MyString作为String传递时,它都可能导致各种问题,特别是关于散列,这取决于String的不变性。
答案 1 :(得分:0)
因为它使它们更容易使用: