你的位置:首页 > Java教程

[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);     //trueSystem.out.println(j == k);     //falseSystem.out.println(k == s);    //trueSystem.out.println(j.equals(i));  //true