Java Interger小知识

Integer装箱与拆箱

装箱:

Integer i = 10;

相当于:Integer i = Integer.valueOf(10);

拆箱:

Integer i = 10; //装箱 
int t = i; //拆箱,实际上执行了 int t = i.intValue();

 
另:
  1. Integer与int使用==进行比较,对Interger进行拆箱
  2. Interger会缓存-128~127的值,部分源码如下:
    public static Integer valueOf(int i) {
            if (i >= IntegerCache.low && i <= IntegerCache.high)
                return IntegerCache.cache[i + (-IntegerCache.low)];
            return new Integer(i);
    }

     

所以有如下结果:

int i = 10;
Integer j = new Integer(10);
Integer k = 10;
Integer s = Integer.valueOf(10);
System.out.println(i == j);          //true
System.out.println(j == k);         //false
System.out.println(k == s);        //true
System.out.println(j.equals(i));    //true

 

posted on 2016-07-23 11:42  _路上  阅读(450)  评论(0编辑  收藏  举报

导航