# String 的不可变性
# String 的基本特性
- String : 字符串,是用一双 "" 引起来表示
- String 声明为 final 的,不可被继承
- String 实现了 Serializable 接口:表示字符串是支持序列化的,实现了 Comparable 接口:表示 String 可以比较大小
- String 在 jdk8 及以前内部定义了 final char [] value 用于储存字符串数据. jdk9 时改为 byte []
# String 的不可变性
- 对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的 value 进行赋值
- 当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的 value 进行赋值
- 当调用 String 的 replace () 方法修改指定字符或字符串时,也需要重新指定内存区域赋值,不能使用原有的 value 进行赋值
- 通过字面量的方式 (区别于 new) 给一个字符串赋值,此时的字符串值声明在字符串常量池中
