标签:String
初步学习JDK的String类源码

最近有空看了部分 String 类的源码,下面只挑重点部分记录一下。 为什么要用 final 修饰类 第一个比较特别的就是,String 类是用 final 修饰的,表明这个类不可被继承。 public final class String 为什么要防止被继承呢?经过一番研究和思考之后,目前比较靠谱的解析是:String 类是设计成不可变的。假设可以被继承,我们就可以写一个子类继承 String,然后覆盖它的部分方法,使得不可变性遭到破坏。最后,我们把这个子类传给使用方,使用方预期是一个不可变的 String 类,实际得到的是一个可变的子类,这样就出问题了。 使用 char value[]存...

阅读更多