无题
String被关键字final修饰,所以不能被继承。
String是JAVA用于处理字符串的类, 我们平常双引号包含的字符串例如”abc”,其实就是一个String的实例。String是一个常量,一旦创建它的值就不能被修改, 是immutable只读类。 语法上定义为final的类, 就是不允许被有子类去修改String的值。 那为什么要定义String为不可变化的类呢?
1.字符串常量池的实现, 我们在代码中定义的”abc”等字符串很可能在常量池中存在, 每个String引用指向同一个字符串实现重用。如果String引用能修改字符串的值, 常量池设计无法实现。
2.安全和易用性的考虑, 在我们应用中,字符串是用得最多的类,我们经常需要在不同的类,方法间传递String, 甚至在多线程中操作String, 很多场景下是希望字符串能创建就不修改,安全简单的使用,所以String作为这个常见的一个字符串封装做了写保护,就好像C语言里面的字符串指针指向字符串常量,指针则是无法修改字符串的值的。
3.类似String的不可变类还有java.lang.Integer,Long,Double等wrapper class, 原因也是类似的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 每天都不一样!