[面试题]-String为什么不可变

  • String类被final修饰,不可被继承。
  • String的成员变量char数组value被final修饰,初始化后不可更改引用。
  • String的成员变量value访问修饰符为private,不对外界提供修改value数组值的方法。

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

你可能感兴趣的:(Java)