为什么String最后?

时间:2011-01-04 03:46:24

标签: java string

  

可能重复:
  Why is String final in Java?

我只是想知道为什么java.lang.String成为final?是为了防止被遗传?为什么呢?

3 个答案:

答案 0 :(得分:2)

您不应该扩展字符串类。只需在其他操作字符串的类中编写自己的方法。

原因是字符串类是一个稳定的字符串类,不应该被篡改,因为你可能会重新定义一些对其他一些事务产生未知副作用的方法。

答案 1 :(得分:2)

确实是的。这允许安全管理器和类加载器中的代码使用String类型,而不必担心它实际上正在处理专门设计用于欺骗它允许恶意代码通过的恶意子类。

答案 2 :(得分:2)

除了已经提到的安全方面,我怀疑性能是另一个重要原因。对于较旧的JVM,尤其是最终类(根据定义,所有方法都是最终的)使得在运行中内联代码变得更加容易。而且由于String是最常用的对象之一,它会影响许多应用程序的整体性能,因此这被视为一个改进将产生很大整体效果的领域。