1.字符串是一个特殊的对象 2.字符串一旦被初始化就不可以被改变,引用可以改变 3.字符串在常量池是一个字符数组
public class Test {
public static void main(String[] args) {
String str = "abc";
String str1= new String("abc");
String str2 = "abc";
System.out.println(str==str1);//false
System.out.println(str==str2);//true
System.out.println(str.equals(str1));//true
}
}
4.str==str1因为比较的是地址值,str在内存中有一个对象,str1在内存中有2个对象 5.str.equals(str1)因为比较的是内容。String重写了equals()方法 6.str==str2因为字符串一旦初始化就不可以被改变,改变的是引用地址,str和str2指向的是同一个地址