- 不可以被继承,因为该类被定义成final.
- 用final定义的原因:
(1) 为了实现字符串池。
(2) 为了线程安全
(3) 保证缓存的HashCode不可变性,提高性能 - String类为什么是不可变的对象?
(1)字符串池的实现可以节约很多heap空间,如果String是可变的,指向串池中同一个对象的其他变量值也会发生改变
(2)因为String是不可变的,所以是多线程安全的,同一个字符串实例可以被多个线程共享,因为String的不可变性,线程安全。
(3)String在创建时,Hashcode就被缓存了,不需要重新计算。字符串的不可变性保证了hash码的唯一性。
String类是否可以被继承?
最新推荐文章于 2022-04-11 14:04:07 发布