对象的比较(==与equals()方法的区别)

146 阅读1分钟

标签: Java入门


对比

"==" equals()方法
比较两个对象引用的地址是否相等 比较两个对象所指的内容是否相等
运行速度快 运行速度慢

"=="

1、比较的是操作符两端的操作数是否是同一个对象

2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。

3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为TRUE。

如: int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆


equals()方法

1、比较的是两个对象的内容是否一样

对equals重新需要注意五点:

1 自反性:对任意引用值X,x.equals(x)的返回值一定为true;

2 对称性:对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为true;

3 传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true ;

4 一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变;

5 非空性:任何非空的引用值X,x.equals(null)的返回值一定为false 。

参考资料:www.cnblogs.com/shenliang12…