10月面试题-1
来源:5-1 常量
何艾莉
2022-10-26 15:32:05
老师好,今天面试中问到String类型为什么设计成为不可继承的?
请回答一下~
1回答
好帮手慕小蓝
2022-10-26
同学你好,老师这里也没有准确的答案,只能提供一些参考:
String类作为Java中最基础的引用类型,也是最常用的引用类型。所以Java在设计之初就考虑到了其性能和安全性,即既要运行效率高,也要线程安全。所以在设计的时候,使用了常量池等技术。
如果String类可以被继承,那么几乎所有类都可以通过继承String类来获得上述的特性,那么就相当于所有类,包括String自身,并没有获得任何提升。
所以在设计之初,就将String设计为不可继承的了。
这就像是现实生活中,高速公路上的应急车道,这条车道的用意是使一些应急车辆可以以最高效的方式行驶。如果任何车辆都可以算作应急车辆的话,那么这条车道就没有任何提高效率的意义了,所以并不是所有车辆,都可以算作应急车辆。
同理,Java类也是如此,只有String这样的特殊类,才拥有这样的特性,其他类是不可以有的。
祝学习愉快~
相似问题