今天在群里面看到这个问题,equals和==的区别是什么?我有点迟钝,不就是如果是String类型的话equals比较的是内容,非字符串类型则比较的是内容吗?我想里面的考点也没有多少吧。
然后我就回复了一个:equals本来就是为了比较内容出现的啊。
这其实是一种没有理解原理,死记硬背的体现。于是我很快被打脸了。
知耻而后勇,我立马就去和度娘哭诉。
于是乎,我在网上果然又看到了那些“大佬”的解析,基本上无外乎是和我一样,给出结论,来两个demo。甚至乎,我还看到了一篇极易误导小白的文章。说了一大堆,给的demo也是没有代表性,最终还是得出equals比较字符串的结论。
言归正传,来讲一下我的理解:
首先我们来看底层代码,找到Object类的equals方法,我们可以看到:
public boolean equals(Object obj) {
return (