String类能被继承吗,为什么?为什么要这么设计?

String不可被继承,因为String⽤了final关键字定义了类。String是不可变类。

① JVM在设计时设计了字符串常量池存储及复⽤字符串,所以字符串需要定义为不可变的。

② 字符串可变会有安全问题,会被篡改。

③ String因为不可变,其HashCode⼀开始就完成了缓存,在Map中作为key可以提⾼性能,不需要实时计算。


String类能被继承吗,为什么?为什么要这么设计?


分享到:


相關文章: