Integer a = 127;
这段代码的意思是:我到栈内存中去问:有没有一个值为127的变量啊?如果有,好,那我就指向你了。
就好比你到一个班中去找一个叫“127”的人,这个人只有一个。
Integer x = new Integer(127);
这段代码的意思是:我到堆中去说:你们给我个位置,我要存放一个数值为127的Integer类型的变量;不管你内存中有没有值为127的Integer对象,我都要新增一个Integer对象。只不过这两个对象碰到了,会说:噢?你的号码也是127啊?
这种情况就好比我把另一个叫“127”的人加入到这个班上来了,这两个人肯定不可能是同一个人啊!