本帖最后由 田啸 于 2012-3-4 20:11 编辑
java为了提高效率,初始化了-128--127之间的整数对象
所以在赋值在这个范围内都是同一个对象。
1。java在编译的时候 Integer a = 100; 被翻译成-> Integer a = Integer.valueOf(100);
2。比较的时候仍然是对象的比较
3. Integer 的范围是-128 127,当符合值范围时候,进入也创建好的静态IntergerCache(-128--127之间的整数对象),这时候直接到这里面去取现成的对象,因此取的是同一个对象(指向的是一个内存空间),当不符合-128 127值范围时候。程序会:new,开辟新的内存空间,不属于IntergerCache管理区,这时候获得的就是两个对象 |