对象中"=="与"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()"的主要内容,如果未能解决你的问题,请参考以下文章
linux中的set命令: "set -e" 与 "set -o pipefail"
android JSON文件解析为类对象 出现以下错误,求解答。