比如==,书上说可以用来做基本类型数值之间的比较,也可以用来做对象变量之间的比较。可是请看如下代码: String s = "s";
Integer i = new Integer(1);
if (s == i) {
} 编译报Incompatible operand types String and Integer的错。 我想知道的是:当比较运算符运用来做对象变量之间的比较的时候,都有那些规则。 谢谢了!
Integer i = new Integer(1);
if (s == i) {
} 编译报Incompatible operand types String and Integer的错。 我想知道的是:当比较运算符运用来做对象变量之间的比较的时候,都有那些规则。 谢谢了!
}
1.1、同类型的,直接比较。
1.2、不同类型的,自动将低精度类型cast成高精度类型,然后比较。
2、对于引用类型的
2.1、同类型的,比较两个引用是否引用了同一个对象实例。
2.2、不同类型的
2.2.1 ==号左侧是右侧的超类,比较是否两个引用是否引用了同一个对象实例。
2.2.2 否则,抛异常。