String就是对字符数组的封装。
源码是这样编写的
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
....
我们可以看到String类中有一个字符数组,该数组被private修饰,代表了不能被外对象访问,final被final修饰代表了他的不变性。而且String类被final修饰,表示String不能被继承,也是在一定程度上防止了value数组被修改。
String类不变的好处
1.因为String类变性,所以将String串放到,字符串常量池中,在一定程度上,节省了空间。
2.String不变性,对于传输过程中的用户名和密码提高传输的安全性。
3.字符串的不可变,所以线程是安全的,同一个字符串的实例可以被多个线程所共享,字符串自身就是线程安全的。