开发者社区> 问答> 正文

java中==和eqauls()的区别,equals()和`hashcode的区别?

java中==和eqauls()的区别,equals()和`hashcode的区别?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-10-28 14:51:19 1259 0
2 条回答
写回答
取消 提交回答
  • 为之则易,不为则难

    ==如果是基本类型,则比较的是值是否相等,如果是对象之间的比较,则比较的是对象指向的地址。eqauls()方法是继承子Object类的方法,是对对象进行比较,一般使用eqauls()时应该对该方法进行重写,定义自己对象独有的比较规则 eqauls是比较的方法,而hashcode是获取对象hash码的方法,某些时候重写equals方法时可能也会需要重写hashcode方法,定义自己的规则,方便对象之间的比较

    2019-10-30 16:22:59
    赞同 展开评论 打赏
  • ==是运算符,用于比较两个变量是否相等,而equals是Object类的方法,用于比较两个对象是否相等.默认Object类的equals方法是比较两个对象的地址,此时和==的结果一样.换句话说:基本类型比较用==,比较的是他们的值.默认下,对象用==比较时,比较的是内存地址,如果需要比较对象内容,需要重写equal方法

    2019-10-28 14:51:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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