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

Posted wkcode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象中"=="与"equals()"相关的知识,希望对你有一定的参考价值。

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()"的主要内容,如果未能解决你的问题,请参考以下文章

mongodb内嵌数据对象有啥属性

linux中的set命令: "set -e" 与 "set -o pipefail"

android JSON文件解析为类对象 出现以下错误,求解答。

使用<a href="javascript:fn()"><a>调用js方法 获得 a标签的对象?

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

log.error("异常:", e);与log.error(e.getMessage());区别