==和equals区别
== 实质比较的是二进制位
1.==两边是基本类型的情况
int a = 10;
int b = 20;
System.out.println(a==b);//false
2.==两边是引用类型的情况
比较的是地址,其实比较的是引用的是否是同一个对象,如果引用的是同一个对象就是true,不是同一个对象就是false
equals
没有重写equals时用object类的equals,实际还是==
String类的equals,比较的是字面值,如果字面值相同,返回true,不相同返回false
intern()方法
s1.intern()的意思 s1指向的堆里的对象对应的真正的常量池中字面值的地址1