Java 中的 `==` 与 `equals()` 方法:对象内容比较与引用比较的细微差异

Java 中的 == 与 equals() 方法:对象内容比较与引用比较的细微差异 各位看官,大家好!今天咱们来聊聊 Java 这门语言里一对让人又爱又恨的好兄弟:== 和 equals()。 它们都肩负着比较的重任,但比较的姿势和结果却大相径庭。 就像一对双胞胎,长得挺像,脾气秉性却千差万别。 搞清楚它们的区别,是成为 Java 大神的必经之路。 否则,一不小心就会掉进坑里,debug 到天荒地老。 1. 别看我俩长得像,本质区别大着呢! 首先,我们要明确一点:== 和 equals() 比较的东西不一样。 ==: 这位老兄比较的是引用(reference)。 也就是说,它比较的是两个变量是否指向内存中的同一个对象。 就像警察叔叔查身份证号码,如果两个人的身份证号码一样,那肯定就是同一个人了(在程序的世界里)。 equals(): 这位老弟比较的是对象的内容(content)。 也就是说,它比较的是两个对象所包含的数据是否相同。 就像咱们看两个人的照片,如果照片里的人长得一样,那我们就说他们长得像(当然,这只是比喻,程序可没这么智能,得你告诉它怎么比)。 为了更形象地理解,咱们可以把 …