java中==和eqauls()的区别,equals()和`hashcode的区别?
本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。
==如果是基本类型,则比较的是值是否相等,如果是对象之间的比较,则比较的是对象指向的地址。eqauls()方法是继承子Object类的方法,是对对象进行比较,一般使用eqauls()时应该对该方法进行重写,定义自己对象独有的比较规则 eqauls是比较的方法,而hashcode是获取对象hash码的方法,某些时候重写equals方法时可能也会需要重写hashcode方法,定义自己的规则,方便对象之间的比较
==是运算符,用于比较两个变量是否相等,而equals是Object类的方法,用于比较两个对象是否相等.默认Object类的equals方法是比较两个对象的地址,此时和==的结果一样.换句话说:基本类型比较用==,比较的是他们的值.默认下,对象用==比较时,比较的是内存地址,如果需要比较对象内容,需要重写equal方法
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。