Java Equals

Integer i = 42;
Long l = 42l;
Double d = 42.0;

下面为true的是:

(i == l)
(i == d)
(l == d)
i.equals(d)
d.equals(l)
i.equals(l)
l.equals(42L)

正确答案:
只有l.equals(42L)

解析:

ABC3 个选项很明显,不同类型引用的 == 比较,会出现编译错误,不能比较。
DEF 调用 equals 方法,因为此方法先是比较类型,而i , d , l 是不同的类型,所以返回假。
选项 G ,会自动装箱,将 42L 装箱成 Long 类型,所以调用 equals方法时,类型相同,且值也相同,因此返回真。

你可能感兴趣的:(Java Equals)