我注意到以下代码返回false
Integer a = 600;
Integer b = 600;
System.err.println(a == b);
但是这个
int a = 600;
int b = 600;
System.err.println(a == b);
返回true
任何人都可以解释一下吗?
答案 0 :(得分:1)
最重要的是要知道高达128
的值被缓存,JVM为您提供相同的对象,因为参考比较有效。在128
之上,它会创建一个新实例。
有关详细信息,请转到javadoc of Integer.valueOf(int)(这是幕后发生的事情)
答案 1 :(得分:0)