首页 > 解决方案 > 对象等于方法是 == 和浅拷贝

问题描述

我有

Object o = new Object()
o == o.clone(); //I understand this should be false since it's different two arraylist pointing to the same object right?
o.equals(o.clone())  //it's true if it's shallow copy since pointing at the same one

这里的equals不是==,应该是比较hash code吧?因为它是对象。来源:等于字符串和列表中的方法使用

但在我的笔记上,它说 equal 方法在这里意味着 ==。

我的笔记错了吗?

我的笔记说对象类有 aclone() 方法,但它有一个空实现,并且由于这个原因,不允许对象类的对象调用此方法。

有人可以更好地解释一下吗?我想我误解了一些东西

标签: java

解决方案


==比较对象引用 - 它们是否完全相同的内存引用。equals是每个类实现的方法,通常用于进行更有用的比较(例如两个字符串是否包含相同的字符,或者两个列表是否包含相同的内容)。

但是,默认实现Object只是回退到进行==比较,因此对于该类的实例,没有区别。


推荐阅读