编程语言
首页 > 编程语言> > 在java中为什么说String是不可变的

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

作者:互联网

如果要了解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数组内容的方法

标签:java,String,不可,value,char,private,数组,final
来源: https://blog.csdn.net/weixin_46116099/article/details/122530512