Java中==和equals的区别

对于基础类型,如int,double…只能采用==进行比较,且比较的是数值

对于引用类型,可以采用==和equals进行比较,==比较的是两个引用的引用地址,及两个引用引用的是否为一个对象,而equals则是Object方法进行提供的,如果不进行重写,其比较的也是引用

Object中equals

ublic boolean equals(Object obj) {
        return (this == obj);
    }

其和==相同

当我们重写其以后,就可以按照我们的要求进行比较

和比较有关系的还有个方法叫做hashcode

equals和hashcode有以下的关系

1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。

2.hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。

因为hashcode可能存在碰撞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值