13.1 String的基本特性
- String声明为final的,不可被继承
- String实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口:表示String可以比较大小
- String在jdk8以前内部定义了final char[] value用于存储字符串数据,jdk9改为byte[]
- String:代表不可变的字符序列。不可变性
public class StringTest1 {
public static void test1() {
// 字面量定义的方式,“abc”存储在字符串常量池中
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);//判断地址,true
s1 = "hello";
System.out.println(s1 == s2);//false
System.out.println(s1);
System.out.println(s2);
System.out.println("----------------");
}
public static void test2() {
String s1 = "abc";
String s2 = "abc";
// 只要进行了修改,就会重新创建一个对象,这就是不可变性
s2 += "def";
System.out.println(s1);//abc
System.out.println(s2);//abcdef
System.out.println("----------------");
}
public static void test3() {
String s1 = "abc";
String s2 = s1.replace('a', 'm');
System.out.println(s1);//abc
System.out.println(s2);//mbc
}
public static void main(String[] args) {
test1();
test2();
test3();
}
}
面试题
public class StringExer {
String str = new String("good");
char [] ch = {
't','e','s','t'};
public void change(String str, char ch