== 和 equals 区别是什么

区别:==equals

  • ==:比较两个对象的内存地址,即它们是否引用了相同的对象。如果两个变量指向同一个对象,那么 == 会返回 true
  • equals:用于比较两个对象的内容是否相同。默认情况下,equals 方法也是比较内存地址(与 == 相同),但许多类(如 StringInteger 等)重写了 equals 方法,以比较对象的内容。

形象的例子

场景:比较两个装满金币的宝箱

假设你有两个宝箱,分别装满了金币。你想知道这两个宝箱是否相同。我们用 ==equals 来描述这两个比较的方式。

  • ==:你走到宝箱前,查看这两个宝箱的外观(例如它们的编号或标签)。如果两个宝箱的编号相同,你就说它们是相同的宝箱。

    • 形象解释:用 == 比较就像是检查两个宝箱的标签。如果标签相同,那么它们就是同一个宝箱(即引用相同的对象)。
  • equals:你打开两个宝箱,检查里面的金币是否一模一样。如果金币的数量、种类和摆放方式都相同,你就说这两个宝箱是一样的。

    • 形象解释:用 equals 比较就像是打开宝箱,检查它们的内容是否一致。如果内容相同,即使宝箱外观不同(即引用不同对象),你也会说它们是相同的。

总结

  • == 更关注对象的身份(内存地址),判断两个变量是否指向同一个对象。
  • equals 更关注对象的内容,判断两个对象的实际内容是否相同。

在编程中,使用 == 通常是为了比较对象是否是同一个引用,而使用 equals 则是为了比较两个对象的值或状态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值