美文网首页
形象描述Java中equals与==的区别

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

作者: Wangheguan | 来源:发表于2018-05-03 16:41 被阅读0次

一、开篇故事 ——一分钟读懂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方法存在的目的。

相关文章

网友评论

      本文标题:形象描述Java中equals与==的区别

      本文链接:https://www.haomeiwen.com/subject/vxklrftx.html