java里String类为何被设计为final

  前些天面试遇到一个非常难的关于String的问题,“String为何被设计为不可变的”?类似的问题也有“String为何被设计为final?”个人认为还是前面一种问法更准确,设计成final仅仅保证了String类不能被继承,而Immutable相对于final要严格的多,关于对Immutable的理解可以参考这里。

  下文主要翻译自:

  要回答这个问题,java程序员必须对String是如何工作的,它的特性是什么,还有一些关键原则有一个很深刻的理解。String类在Java里是一个上帝类,它有一些其他类所不具备的特性,比如String字面量存储在常量池,你可以通过操作符“+”来连接多个String。鉴于String类在Java编程里的重要性,Java设计者把它设计为final的,这意味着你不可以继承这个类,同样这也有助于String对象的不可变。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssxws.html