Java Integer 对象的比较

1. 一个有意思的例子

 1 class myClass {
 2     public static void main(String[] args) {
 3         Integer a = 127;
 4         Integer b = 127;
 5         System.out.println(a==b);
 6         
 7         Integer c = 128;
 8         Integer d = 128;
 9         System.out.println(c==d);
10     }
11 }

输出结果

true
false

 

解析:Java中,-128~127的数字是immutable的,也就是常量,而对此范围外的数字,每个都会创建一个新的对象。

 -------------- 20141128 更新 ---------------------

java为什么会内置-128~127的数字?

一个常量整数赋值给Integer对象,autobox的过程是会产生临时变量的,如果临时变量产生过多就会影响性能,产生GC.而如果把过多的整数嵌入内存又不可能,所以折中的办法就是内置使用频率较高的-128~127.

 

 

 

posted on 2013-04-24 23:06  name2579  阅读(259)  评论(0编辑  收藏  举报

导航