开发者社区> 问答> 正文

java中==和equals和hashCode的区别是什么?

java中==和equals和hashCode的区别是什么?

展开
收起
游客bnlxddh3fwntw 2020-04-10 13:09:19 1745 0
1 条回答
写回答
取消 提交回答
  • 基本数据类型的==比较的值相等.

    类的==比较的内存的地址,即是否是同一个对象,在不覆盖equals的情况下,同比较内存地址,原实现也为 == ,如String等重写了equals方法.

    hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等比较是否为同一个)

    如果两个对象equals,Java运行时环境会认为他们的hashcode一定相等。

    如果两个对象不equals,他们的hashcode有可能相等。

    如果两个对象hashcode相等,他们不一定equals。

    如果两个对象hashcode不相等,他们一定不equals。

    2020-04-10 13:09:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载