0 java types
如果我们使用不同的声明语句创建3个int类型的变量,例如,
Integer i = 10; Integer j = new Integer(10); int k = 10;
而我们比较它们是否相等,我们得到i == k 和j == k,但不会i==j.
i == k
j == k
i==j
这是什么原因?
rua*_*akh 5
由于i具有类型Integer和k类型int,表达式i == k触发拆箱:它等同于i.intValue() == k(甚至到它将引发NullPointerExceptionif i为null的点).同样的j == k.但由于i并且j两者都有类型Integer,因此不会执行自动装箱,因此i == j只需检查它们是否是同一个对象 - 相同的实例Integer.
i
Integer
k
int
i.intValue() == k
NullPointerException
j
i == j
归档时间:
12 年,4 月 前
查看次数:
36 次
最近记录: