java - 对象等于方法是 == 和浅拷贝
问题描述
我有
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() 方法,但它有一个空实现,并且由于这个原因,不允许对象类的对象调用此方法。
有人可以更好地解释一下吗?我想我误解了一些东西
解决方案
==
比较对象引用 - 它们是否完全相同的内存引用。equals
是每个类实现的方法,通常用于进行更有用的比较(例如两个字符串是否包含相同的字符,或者两个列表是否包含相同的内容)。
但是,默认实现Object
只是回退到进行==
比较,因此对于该类的实例,没有区别。
推荐阅读
- elasticsearch - Elasticsearch 通过嵌套对象属性聚合
- c# - 球的无限弹跳(Unity)
- react-native - undefined 不是一个函数(评估'_this2.AlertButton()')?
- python - Python Fabric 2 使用标准输入
- c# - 如何取消上下文中所有未保存的数据?使用 EF6 时
- kubernetes - grpc-dart - 如何在 grpc-dart 中设置 HEADER - 我只能通过安全连接来完成
- react-native - 使用 oauth2 登录后如何使重定向 url 起作用
- android - 是否有机会更改 android 中的构建变体运行时间
- pandas - 尝试调用 fit_transform 时自定义类引发错误
- firebase - 使用什么标准将每日数据从 Firebase Crashlytics 传输到 Big-Query