String字符串
String不可变性 Java 8 中,String 使用 char 数组存储数据 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char[] value; } Java 9 中,String 类改用 byte 数组存储字符串,同时用 coder 来标识使用哪种编码 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final byte[] value; private final byte coder; } String 是一个 final 类,意味着它不可以被继承,并且存储数据的 value 数组也被声明为 final,意味着 value 数组初始化后不能再引用其他数组,再加上 String 内部没有更改 value 数组数据的方法,所以 String 不可变。 public static void main(String[] args) { String s1 = "abc"; //不可变,意味着s1数据不能更改,所以下列过程是重新创建一个新对象赋给s1