Java中==和equal()和hashcode()的区别和联系

  1. ==和equal的区别和联系

    最原始的和equal表示的都是比较对象的栈内存地址
    但是,在网上很多人会说他们的区别是
    表示比较对象的地址,equal表示比较对象的内容,这个说法并不全面。最根本的原因是,在string,integer等封装类,重写了equal方法,变成比较对象的内容了,所以在这些封装类中,可以说==比较的是这些对象的地址,equal比较的是这些对象的内容
    2.equal和hashcode的区别
    对象的equal相同hashcode一定相同,因为在堆栈中,equal比较的是对象的引用地址,在引用地址相同的情况下,hashcode的值也是相同的,但是hashcode相同,equal却不一定为true,这是因为hash冲突,举个例子,hashcode和equal的关系,相当于多对一,因为hashcode相同的时候,可能表示几个对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值