下面运行出来的结果true,false
Integer c=3;
Integer d=3;
Integer e=321;
Integer f=321;
System.out.println(c==d);
System.out.println(e==f);
经过试验发现,当小于等于127时,为true,反之,为false, 为啥捏
http://blog.csdn.net/shw2004/article/details/5678703。。。。。。好多误人子弟的回复啊。
这个问题和装箱拆箱无关,
为了效率JAVA把-127到127的int数字放在常量池里,
所以才有LZ你说的现象。
你强制new对象,不从常量池取数字,就能看到false了,比如把头两句改成下面:
Integer c=new Integer(3);
Integer d=new Integer(3);