equals()方法、 和 hashcode()方法

1.equals()方法:

方法格式:public boolean equals(Object obj)
功能:比较引用类型数据的等价性
等价标准:引用类型比较引用地址,基本类型比较值。
equals()方法与==操作符的区别:
equals()方法只能比较引用类型数据,而“==”可以比较引用类型和基本数据类型数据;
equals()方法存在特例:对File、String、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例,因为在这些类中重写了Object类的equals()方法。

可以根据需要,在用户定义类中重写其equals()方法

2.hashcode()方法:

方法格式:public int hashCode() {…}
返回该对象的哈希码值 。
如果你重写了equals,比如说是基于对象的内容实现的,而保留hashCode的实现不变,那么很可能某两个对象明明是“相等”,而hashCode却不一样。
如果根据equals(),两个对象均相同,则调用这两个对象的hasCode()必须返回相同的int值。 
如果重写了equals()方法,一般也要重写hashCode方法。
System.identityHashCode("abcd");不管有没有重写hashCode都会打印地址值 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值