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