简述==与equals 的区别。
时间: 2023-09-30 12:11:35 浏览: 90
==和equals的区别
在Java中,==用于比较两个对象的引用是否相等,即它们是否指向同一个内存地址。而equals()用于比较两个对象的内容是否相等,即它们的属性值是否相同。通常情况下,equals()的实现需要根据具体的业务场景来确定,因为不同的对象可能有不同的内容判断标准。同时,equals()方法需要满足以下约定:
1.自反性:对于任何非空引用x,x.equals(x)应该返回true。
2.对称性:对于任何非空引用x和y,如果x.equals(y)返回true,则y.equals(x)也应该返回true。
3.传递性:对于任何非空引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)也应该返回true。
4.一致性:对于任何非空引用x和y,多次调用x.equals(y)应该返回相同的结果,前提是对象上 equals() 中所用的信息没有被修改。
5.对于任何非空引用x,x.equals(null)应该返回false。
阅读全文