这段代码是:
elem1!=elem2
Run Code Online (Sandbox Code Playgroud)
相当于这一个?
!elem1.equals(elem2)
Run Code Online (Sandbox Code Playgroud)
它汇编了两种方式,但我仍然不确定它...
==(并且通过扩展!=)检查对象标识,即,两个对象是否引用同一个实例.equals检查更高级别的身份概念,通常是对象的"值"是否相等.这意味着什么取决于equals在该特定对象上实现的任何人.因此他们不是一回事.
这两个不相同的常见示例是字符串,其中两个不同的实例可能具有相同的内容(相同的字符串),在这种情况下,==比较为false但equals返回true.
equals(on Object)的默认实现在==内部使用,因此对于不覆盖的对象equals(当然不包括null)的结果将是相同的
一般来说,不,他们不一样.第一个版本检查是否elem1和elem2是同一个对象的引用(假定他们不是原始类型).在某种意义上,第二个版本调用特定于类型的方法来检查两个(可能是不同的)对象是否"相等"(通常,这只是检查它们的所有成员字段是否相同).
我认为这与仿制药没有任何关系.
| 归档时间: |
|
| 查看次数: |
774 次 |
| 最近记录: |