java 怎么判断两个对象是否相等

 我来答
kasim416
推荐于2017-10-09 · TA获得超过707个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:295万
展开全部
java中如果两对象(obj1,obj2)相等,那么在修改obj2的时候,obj1的值也会改变。其实相当于内存中只有一个对象,而obj1和obj2连个变量都指向同一个对象。
如果两个变量引用的是两个不同地址的对象,即使对象的内部参数都是一样的,系统也会认为是不同的两个对象
至于比较方法,简单一点的可以使用==。严谨一些就用equals
大弟是也
2019-03-24
知道答主
回答量:18
采纳率:0%
帮助的人:8.5万
展开全部

看下这个网页链接

Equator equator = new GetterBaseEquator();
// 判断属性是否完全相等
boolean eq = equator.isEquals(user1, user2);
// 获取不同的属性
List<FieldInfo> diff = equator.getDiffFields(user1, user2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ffcc44
2015-02-09 · TA获得超过183个赞
知道小有建树答主
回答量:182
采纳率:100%
帮助的人:142万
展开全部
没有现成的方法,可以考虑在对象里面重写equals方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绒毛饭团子
2015-02-09 · 超过68用户采纳过TA的回答
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:104万
展开全部
obj1.equals(obj2) 用对象obj1调用函数equals,参数就传对象obj2.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lchuansen
2018-02-05
知道答主
回答量:1
采纳率:0%
帮助的人:906
引用kasim416的回答:
java中如果两对象(obj1,obj2)相等,那么在修改obj2的时候,obj1的值也会改变。其实相当于内存中只有一个对象,而obj1和obj2连个变量都指向同一个对象。
如果两个变量引用的是两个不同地址的对象,即使对象的内部参数都是一样的,系统也会认为是不同的两个对象
至于比较方法,简单一点的可以使用==。严谨一些就用equals
展开全部
举个例子:
String s1= new String("ss");
String s2= new String("ss");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
结果:
true
false
"=="可用于基本数据类型和引用数据类型,当用于引用数据类型时,比较的实际上是两个数据的引用地址,如果引用地址相同那么equals结果也一定是true;而“equals”则是比较两数据本身,equals返回true“==”未必返回true。
对于两个自定义对象的比较:
1、重写toString方法,然后object1.toString().equals(object2.toString())
2、重写equals方法,然后object1.equal(object2)
3、还可以利用反射比较。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式