为什么在Java中将String类声明为final?

当我得知该类java.lang.String在Java中被声明为final时,我想知道为什么会这样。那时我没有找到任何答案,但是这篇文章:如何在Java中创建String类的副本?让我想起了我的疑问。

当然,String提供了我所需要的所有功能,而且我从未想过需要扩展String类的任何操作,但是您仍然永远不会知道有人可能需要什么!

那么,有谁知道设计师决定将其定稿时的意图是什么?

回答:

将字符串实现为不可变对象非常有用。你应该阅读不变性,以了解更多有关不变性的信息。

不变对象的一个优点是

你可以通过将重复副本指向单个实例来共享它们。

如果String不是最终的,则可以创建一个子类,并具有两个“视为字符串”时看起来相似的字符串,但实际上是不同的。

以上是 为什么在Java中将String类声明为final? 的全部内容, 来源链接: utcz.com/qa/422823.html

回到顶部