参考视频链接https://www.bilibili.com/video/BV1CJ411m7gg?p=67
==
- 基本类型比较值:只要两个变量的值相等,即为true。
int a=5;
if(a==6){...};
- 引用类型比较引用(是否指向同一个的对象):只有指向同一个对象时,==才返回true。
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1==p2);
p1=p2;
System.out.println(p1==p2);
注意:用“==”进行比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译出错。
equals()
- 引用类型比较引用(是否指向同一个的对象):只能比较引用类型,其作用与“==”相同,比较是否指向同一个对象。
- 特例:当用equals()方法进行比较时,对类File、String、Date及包装类(Wrapper Class)来说,是比较类型及内容而不考虑引用的是否是同一个对象。在这些类中重写了Object类中的equals()方法
总结:对于对象来说,特殊的类,如String、File、Date,使用= =比较的是对象(对象的地址),equals()比较的内容。除了特殊的类之外的其他普通的类的对象,= =和equals比较的都是对象(对象的内存地址)。