前言
==和equals 是我们经常用来作比较的,做判断常用的手段,那这两个又有什么差异呢,我感觉应从以下几个方面入手,彻底理解
结论
应从应用的角度来分析,具体问题具体分析,看是是否重写equals,继续看下去,答案就会揭晓,感谢你的阅读,欢迎提出宝贵的意见,十分感谢
误区
认为 == 是比较大小
equals 是比较地址 这种观念是错误的
例子
public class Demo {
public static void main(String[] args) {
Integer a =1;
Integer b =1;
System.out.println(a==b); //true 《1》
Integer c =128;
Integer d =128;
System.out.println(c==d); //false 《2》
String name = "sun";
String anotherName = "sun";
System.out.println(name.equals(anotherName)); //true
Object city = "上海";
Object province = "上海";
System.out.println(city.equals(province)); //true
}
}
源码分析

因为 == 点不进去,那就拿equals 开刀
Object

String

为啥重写Equals?
有必要的,因为很多业务场景,我们仅仅需要比较其大小,没必要要求地址必须一致。技术来源生活服务生活,比如我们吃饭是为了充饥,在哪里吃,
只要物有所值,吃的开心,就很满意,没必要只在一家吃,再举一个例子,轮带漏气要修理,修好是目的,没必要非要选择一家修理厂或者某特定4S店
5071



被折叠的 条评论
为什么被折叠?



