我只是想知道为什么java.lang.String
成为final
?是为了防止被遗传?为什么呢?
答案 0 :(得分:2)
您不应该扩展字符串类。只需在其他操作字符串的类中编写自己的方法。
原因是字符串类是一个稳定的字符串类,不应该被篡改,因为你可能会重新定义一些对其他一些事务产生未知副作用的方法。
答案 1 :(得分:2)
答案 2 :(得分:2)
除了已经提到的安全方面,我怀疑性能是另一个重要原因。对于较旧的JVM,尤其是最终类(根据定义,所有方法都是最终的)使得在运行中内联代码变得更加容易。而且由于String是最常用的对象之一,它会影响许多应用程序的整体性能,因此这被视为一个改进将产生很大整体效果的领域。