形象描述Java中equals与==的区别

开篇故事 ——一分钟读懂equals与==的区别

有一对双胞胎长得一模一样,就算大家来找茬也找不出外形的区别。哥哥暂且叫GG,弟弟叫DD。
“GG和DD长得真像啊,就像一个模子刻出来的,所以GG和DD长得一样。”
用JAVA的语句描述是:return GG.equals(DD);结果是true

“虽然长得一样但毕竟是两个人啊,GG是哥哥,DD是弟弟,活生生的两个人不能因为长得一样而变成一个人!”
用JAVA的语句描述是:return GG==DD;结果是false

GG只是哥哥的小名,他的真名叫做狗子,接下来有两个问题:
GG和狗子长得一样吗?
GG是狗子吗?

很明显GG和狗子当然长得一样啊因为都是哥哥嘛,所以用JAVA的语句描述是:return GG.equals(狗子);结果是true

那GG是狗子吗,当然啦,GG和狗子是你中有我我中有你都代表同一个人,也就是哥哥,所以用JAVA的语句描述是:return GG==狗子;结果是true

二、正经描述

  1. ==是一个操作符,操作符大多是和变量的引用打交道,使用==时要深入到内存中看本质。==比较的内存地址或者数值;
  2. equals方法是用来比较两个对象实体object的,在Java中往往是根据开发者的不同需求而又不同的实现方式(或者说是不同的比较方法)。java中默认的equals方法是返回一个==的比较的:
    public boolean equals(Object obj) {
    return (this == obj);
    }

写在最后

其实equals怎么比较的不重要,一千个人有一千种比较方式,但一定要明白equals方法存在的目的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值