值类型(int,char,long,boolean等)都是用==判断相等性。对象引用的话,==判断引用所指的对象是否是同一个。equals是Object的成员函数,有些类会覆盖(override)这个方法,用于判断对象的等价性。例如String类,两个引用所指向的String都是"abc",但可能出现他们实际对应的对象并不是同一个(和jvm实现方式有关),因此用==判断他们可能不相等,但用equals判断一定是相等的。另一个类似的例子是BigInteger。总体来说要搞清楚,还是需要先理解清楚对象实体和引用之间的关系。
== 比较基本数据类型 equals 比较引用数据类型 判断字符串是否相等不要使用“==”
作者:Zhipeng
链接:https://www.zhihu.com/question/26872848/answer/34361217
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。