0
点赞
收藏
分享

微信扫一扫

在java中为什么说String是不可变的

犹大之窗 2022-01-16 阅读 57

如果要了解String的不可变性,可以先在jdk1.8中找到String类的部分源码

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

    /** Cache the hash code for the string */
    private int hash; // Default to 0

	......
}

①String类是由final修饰的,这代表着String类不可被继承,即无法被继承的子类修改
②String类的底层数据结构为char数组,并且该数组被final修饰,也就代表着value[]不可被修改指向其他数组,即String不能被改变
③因为Java研发者认为共享带来的好处大于可变,所以在String类中没有发现任何一个修改value数组内容的方法

举报

相关推荐

0 条评论