== 比较内存地址
equals 比较存放的内容字符序列是否相等
String str1 = "a"+"b"+"c";//常量池
String str2 = "abc";//常量池
String str3= new String("abc");//堆内存
str1==str2 true
str1==str3 false
str2==str3 false
str1.equals str2 true
str1.equals str3 true
str2.equels str3 true
str1.hashcode == str2.hashcode str3.hashcode
只要能在堆内存中有映射,hashcode值就是一样的