1.String声明为final的,不可被继承
2.String实现了Serializable接口:表示字符串是支持序列化的
实现了Comparable接口:表示String可以比较大小
3.String内部定义了final char[] value用于存储字符串数据
4.String:代表不可变的字符序列.简称:不可变性
体现:1. 当字符串重新赋值时,重新重写指定内存区域赋值,不能使用原有的value进行赋值
2.当对现有的字符串进行连接操作时,也需要重新做指定内存区域赋值,不能使用原有的value赋值
3.当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域赋值
5.通过字面量的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中
6.字符串常量池中是不会存储相同内容的字符串的
String的实例化方式:
方式一:通过字面量定义的方式
方式二:通过new + 构造器的方式
结论:
1.常量与常量的拼接结果是在常量池. 且常量池中不会存在相同内容的常量
2.只要其中一个是变量, 结果就在堆中
3.如果拼接的结果调用intern()方法,返回值就在常量池中