String类的不变性的实现

String就是对字符数组的封装。
源码是这样编写的

public final class String
    implements java.io.Serializable, Comparable, 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.字符串的不可变,所以线程是安全的,同一个字符串的实例可以被多个线程所共享,字符串自身就是线程安全的。

你可能感兴趣的:(String类的不变性的实现)