1、执行一下代码,通过:@Test
public void testInteger() {
Integer a = Integer.valueOf(1);
Integer b = Integer.valueOf(1);
Assert.assertTrue(a == b);
}2、执行一下代码,失败:@Test
public void testInteger() {
Integer a = Integer.valueOf(128);
Integer b = Integer.valueOf(128);
Assert.assertFalse(a == b);
}执行数值不是太大的,用 == 是正确的,但是比较大的数值是错误的。3、归根揭底,对象的比较应该用equals方法,通过
@Test
public void testInteger() {
Integer a = Integer.valueOf(128);
Integer b = Integer.valueOf(128);
Assert.assertFalse(a.equals(b));
}
本文通过两个测试案例探讨了Java中Integer对象的比较问题。当数值较小处于Integer缓存范围内时,使用==进行对象比较是正确的;对于较大数值,应当采用equals方法。文章揭示了Integer缓存机制对对象比较的影响。

被折叠的 条评论
为什么被折叠?



