从回答一个question about primitive types and autoboxing in java:为什么在这个例子中的Integer.valueOf(...)比较返回不同的值?
为biziclop:
类biziclop {
public static void main(String[] args) { System.out.println(new Integer(5) == new Integer(5)); System.out.println(new Integer(500) == new Integer(500)); System.out.println(Integer.valueOf(5) == Integer.valueOf(5)); System.out.println(Integer.valueOf(500) == Integer.valueOf(500)); }
}
结果:
C:\Documents and Settings\glow\My Documents>java biziclop false false true false C:\Documents and Settings\glow\My Documents>
这是为什么?
我并没有打算比较这些价值,但正在寻找一个解释,为什么两个比较的结果是不同的,而他们似乎在做同样的事情。 – steps 2011-03-08 21:32:31