equals方法与"=="号的区别

==”操作符,是比较变量的值是否相等(内存地址也要相等),不涉及对象内容的比较;

equals方法,是比较对象的内容是否相等(不涉及内存地址的比较,如果是自己创建的类就必须重写equals方法,创造者来决定equals的判断标准)。

 

例如:String s1 = new String(“foo”);

      String s2 = new String(“foo”);

那么s1 == s2falses1.equals(s2)true

 

下面是一个equals重写的基本步骤:

@Override

public boolean equals(Object obj){

if(obj == null) 

return false;

if(this == obj)

return true;

if(obj instanceof User){

User other = (User)obj;

return this.id == other.id;

}

return false;

}

@Override

public int hashCode(){

return id<<7;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值