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指向的是同一个地址