标签: 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 。