String源码研究
先来解决一个比较经典的问题,String为什么是final?final的出现就是为了为了不想改变,而不想改变的理由有两点:设计(安全)或者效率。
1、从设计安全上讲,1)、确保它们不会在子类中改变语义。String类是final类,这意味着不允许任何人定义String的子类。换言之,如果有一个String的引用,它引用的一定是一个String对象,而不可能是其他类的对象。2)、String 一旦被创建是不能被修改的,
2、从效率上讲:1)、设计成final,JVM才不用对相关方法在虚函数表中查询,而直接定位到String类的相关方法上,提高了执行效率。2)、Java设计者认为共享带来的效率更高
...