main(){
Integer i1 = 500;
Integer i2 = 500;
System.out.println(i1 == i2); // O/P is "**false**"
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2); // O/P is "**true**"
} // End of main.
我无法弄清楚为什么输出不同。据我所知 s1,s2 将指向堆上的同一个对象。所以它们的参考地址是相同的。同样,我认为 Integer 也是一样的。但事实并非如此。为什么不一样?