Python
==
:Python运行相等测试,递归地比较所有的内嵌对象。(比较内容是否相等)
is
:对象一致性。Python测试二者是否是同一个对象。(比较内存地址是否相同)
Java
==
:
1. 值类型:自然相等性或者说内容相等性
2. 引用类型:对象一致性,是否是同一个对象
equals
:应用类型的规约相等性(通常由用户自定义,往往定义成比较内容是否相等)
Scala
==
:
1. 值类型:内容相等性
2. 引用类型:几乎等价于equals,实际定义为:final def ==(that:any):= if(null eq this){null eq that} else {this equals that}
eq
: 比较对象一致性
equals
: 默认从Any继承下来,不重写的话,等价于eq。scala中的equals基本都是被重写过的,比较的是内容相等性。