@Test
public void test()
{
Integer tt = 128;
Integer tt2 = 128;
System.out.println(tt == tt2);
System.out.println(tt > tt2);
System.out.println(tt < tt2);
//System.out.println(tt + tt2);
/**
* false
* false
* false
*/
}
求指导释一下这个时为什么
public void test()
{
Integer tt = 128;
Integer tt2 = 128;
System.out.println(tt == tt2);
System.out.println(tt > tt2);
System.out.println(tt < tt2);
//System.out.println(tt + tt2);
/**
* false
* false
* false
*/
}
求指导释一下这个时为什么
解决方案
40
Integer tt = 128; 128不在常量池范围内,等价于 new Integer(128); 假如在常量池范围内,且常量池有该对象,不在创建对象,tt将指向常量池的对象;
Integer tt2 = 128; 原理同上;
tt 和 tt2 不在Integer的常量池範圍內,因此Integer tt = 128; Integer tt2 = 128;是兩個不同的對象,==用來判斷兩個變量能否指代同一個對象 >和< 作用在Integer 解箱成int进行进行比较
Integer tt2 = 128; 原理同上;
tt 和 tt2 不在Integer的常量池範圍內,因此Integer tt = 128; Integer tt2 = 128;是兩個不同的對象,==用來判斷兩個變量能否指代同一個對象 >和< 作用在Integer 解箱成int进行进行比较