int和Integer有什么区别?

java中的基本类型有9种:8种原始数据类型+void
原始数据类型:boolean,char,byte,short,int,long,float,double
对应的包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double
注意,String不是基本数据类型

从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。
自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。

class AutoUnboxingTest {
    public static void main(String[] args) {
        Integer a = new Integer(3);
        Integer b = 3;                  // 将3自动装箱成Integer类型
        int c = 3;
        System.out.println(a == b);     // false 两个引用没有引用同一对象
        System.out.println(a == c);     // true a自动拆箱成int类型再和c比较
    }
}

你可能感兴趣的:(int和Integer有什么区别?)