区别:
- Integer是int的包装类,int则是java的一种基本数据类型;
- Integer变量必须实例化后才能使用,而int变量不需要;
- Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值;
- Integer的默认值是null,int的默认值是0。
public static void main(String[] args) {
Integer i = 10;
Integer j = 10;
System.out.println(i == j);//true
Integer a = 128;
Integer b = 128;
System.out.println(a == b);//false
int k = 10;
System.out.println(k == i);//true
int kk = 128;
System.out.println(kk == a);//true
Integer m = new Integer(10);
Integer n = new Integer(10);
System.out.println(m == n);//false
}
运行结果:
true
false
true
true
false
反编译后:
public static void main(String[] args)
{
Integer i = Integer.valueOf(10);
Integer j = Integer.valueOf(10);
System.out.println(i == j);
Integer a = Integer.valueOf(128);
Integer b = Integer.valueOf(128);
System.out.println(a == b);
int k = 10;
System.out.println(k == i.intValue());
int kk = 128;
System.out.println(kk == a.intValue());
Integer m = new Integer(10);
Integer n = new Integer(10);
System.out.println(m == n);
}