Float f1 = 5.25f;
Float f2 = 5.25f;
然后
f1 == f2
是假的。虽然
f1.equals(f2);
是正确的。为什么会这样,我认为,如果执行了拆箱,然后F1 F2 ==应该比较
f1.floatValue() == f2.floatValue();
一样
f1.equals(f2);
应该做的。哪里不对?
更新:不,我看到答案,因为Java也比较了Float对象的引用。我问这个问题,因为我有
Long l = 15l;
Long l2 = 15l;
但
System.out.println(l == l2);
输出被
true
所以我的误导,并认为数字类型的对象是按值使用=相比=。 但我发现,小长值是比较将返回true,因为small long values are cached!
,因为它们是对象,'=='比较引用。 – njzk2
@ njzk2听起来像是对我的回答:) –
没有理由取消装箱,因为没有任何参数要求进行基本比较 – njzk2