码迷,mamicode.com
首页 > 其他好文 > 详细

对象中"=="与"equals()"

时间:2018-05-28 21:15:56      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:div   对象   int   原因   类型   false   new   java类库   ==   

Integer i1 = new Integer(10);
Integer i2 = new Integer(10);
System.out.println(i1==i2);
System.out.println(i1.equals(i2));

 输出结果为:false  true

原因:

两个对象内容相同,但句柄确是不同的,而“==”,“!=”比较的是对象句柄。

若要比较两个对象中的内容需要用equals()方法。


 

J1 j1 = new J1();
J1 j2 = new J1();
j1.a = j2.a = 10;
System.out.println(j1==j2);
System.out.println(j1.equals(j2));

  输出结果:false false(J1为自定义类型)

原因:

默认情况下(自定义的类),equals()比较的是句柄。要使其对对象内容比较,需要自己在类中改变equals()。

大多数Java类库都实现了equals(),例如上面的Integer类

 

对象中"=="与"equals()"

标签:div   对象   int   原因   类型   false   new   java类库   ==   

原文地址:https://www.cnblogs.com/wkcode/p/9102034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!