System.out.println(Integer.valueOf(5) == Integer.valueOf(5));
System.out.println(Integer.valueOf(500) == Integer.valueOf(500));
输出
true
false
为什么第一行返回true但第二行返回false?这是什么诀窍,因为他们都在valueOf()
类上调用Integer
。
答案 0 :(得分:4)
有低编号的Integer对象的缓存实例,但没有任何更高值的Integer对象。
如果您之前没有注意到,则表示您正在比较对象,而不是整数。