java里的equals什么意思,详细描述java中==和equals()的区别
00-1010 1、==分解2、分解等于法3、等于法有以下特点
00-1010==常用于相同基础数据类型之间的比较,也可用于相同类型对象之间的比较;
如果==比较基本数据类型,则比较两个基本数据类型的值是否相等;如果==是两个对象的比较,那么比较两个对象的引用,然后比较两个对象的引用是否相等,即判断两个对象是否指向同一个内存区域;
00-1010Equals方法主要用于两个对象之间,检测一个对象是否等于另一个对象。
让我们来看看Object类中equals方法的源代码。
public boolean equals(Object obj){ return(this==obj);}它的作用也是判断两个对象是否相等。通常,有两种使用情况:
情况一:一个对象的equals方法没有被覆盖,所以调用equals时,比较两个对象的引用是否相等,即两个对象是否指向同一个内存区域。此时相当于==比较两个对象。
狗类
包com.xiao/* * * * @作者:肖骁* @日期:创建于2022/3/11 14:42 */公类狗{私串名;私有整数年龄;public Dog(){ } public String getName(){ return name;} public void set name(String name){ this . name=name;} public Integer getAge(){ return age;} public void setAge(整数age){ this . age=age;}公狗(字符串名,整数年龄){ this.name=namethis.age=年龄;}}测试类
导入com . Xiao . dog;public class test { public static void main(string[]args){ dog dog=newdog(王晓,2);dogdog1=newdog(王晓,2);system . out . println(dog . equals(dog 1));}}测试结果
错误的
案例2:对象的equals方法被重写。通常,重写的equals方法比较两个对象的内容是否相等。如果相等,则返回true,否则返回false。
狗类
包com.xiao/* * * * @作者:肖骁* @日期:创建于2022/3/11 14:42 */公类狗{私串名;私有整数年龄;public Dog(){ } public String getName(){ return name;} public void set name(String name){ this . name=name;} public Integer getAge(){ return age;} public void setAge(整数age){ this . age=age;}公狗(字符串名,整数年龄){ this.name=namethis.age=年龄;} @覆盖public boolean equals(Object obj){ if(obj . getclass()!=getClass()){返回false} Dog Dog=(Dog)obj;if(dog . getage()==age dog . getname()。equals(name)){返回true}返回false}}测试结果
测试代码同上。
真实的
00-1010自反性:对于任何不为空的参考值x,x.equals(x)必须为真。对称:对于任何非空的参考值x和y,如果和null如果x.equals(y)为真,y.equals(x)也为真。传递性:对于任意非空的参考值x,y,z,如果x.equals(y)为真,y.equals(z)为真,那么x.equals(z) null为真。一致性:对于任何非空的引用值X和Y,如果用于equals比较的对象信息没有被修改,x.equals(y) null在多次调用时一致返回true或false。对于任何非空的引用值x,X.equals(null)返回false。关于Java详细分析==和equals的区别这篇文章到此为止。有关Java==和equals的更多信息,请搜索以前关于流行IT的文章或继续浏览下面的相关文章。我希望你将来能支持流行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。