我知道==
运算符适用于原始类型的内容比较和对象的引用比较。
类似地,.equals()
对象类的方法用于对象的引用比较以及字符串和包装类中的内容比较。
但是我从 SCJP/OCJP 笔记中获得的以下几点,我无法理解。我在网上查看,只发现它们之间的区别==
,.equals
但没有发现下面提到的关系。
- 如果
r1==r2
是真的,那么r1.equals(r2)
永远是真的。 - 如果
r1==r2
为假,则r1.equals(r2)
可能返回真(或)假。 - 如果
r1.equals(r2)
为真,则r1==r2
可能返回真(或)假。 - 如果
r1.equals(r2)
为假,则r1==r2
始终为假。