一、String为什么要设计成final?
首先讲讲为什么要设计成final,其实String的final最终的目的是要使得String类变得不可变,提高安全和性能。那么我们可以先说说final为不可变的特性提供了什么帮助,然后在说说String不可变的好处。
String的final体现在两个方面,这个很重要,一个是类的final,一个是value数组的final,下面是String源码:
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
...
}
- 类的final起的作用是不可继承
类的final起的作用是不可继承,由于字符串是需要大量使用的,若是我们使用了继承了String的子类来操作字符串,那会带来两个后果,一是调用子类字符串的方法时,虚拟机要判断是有没有重载后的方法或者是去找它父类对应