1、类型比较
1.1、python
python中提供了type()和isinstance()两个函数用于类型比较,即判断两个对象实例是否来自同一个类。
type和isinstance的差别:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型(和java中的instanceof效果相同)。
1.2、Java
Java中提供了instanceof运算符进行类型比较。例如:
//如果a和b是同一个类,或者a是b的子类或者实现类时,返回true
a instanceof b
2、值比较与引用比较
2.1、python
python中:
- ==:与Java中不同,python中的==不用于比较引用,而用于比较两个对象的“值”是否相等。
- is/is not效果和Java中的==相同,用于判断两个引用是否指向同一个对象。
2.2、Java
Java中:
- ==比较引用,只有两个引用指向同一个对象时,才返回true
- Java中没有直接的可以用于比较值的方法。equals()方法默认比较引用,但是可以通过重写来实现值比较。其中String类默认重写了equals()方法。由于String是不可变类,所以比较两个两个字符串的值是否相等时,使用a.equals(b)