一、区别
1、Integer是int的包装类,int则是java的基本的数据类型
2、Integer变量必须实例化之后才能使用,而int变量不需要实例化
3、Integer实际是对象的引用,当new一个Integer时,实际上生成一个指针指引对象,而int则直接存储数值
4、Integet的默认值是null,而int的默认值是0
二、Integer和int的比较
由于Integer实际是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相同的,因为New生成的是两个不同的对象,所以内存地址不同
public class test1 {
public static void main(String[] args){
Integer i=new Integer(1);
Integer a=new Integer(1);
System.out.println(i==a);
}
}
结果
false
Integer变量和int变量进行比较时,只要两个变量的值相等,则结果就为True,(因为包装类Integer和基本数据类型比较的时候,java会自动拆箱为int,然后进行比较,实际上就是两个int变量进行比较)
public class test1 {
public static void main(String[] args){
int i=new Integer(1);
Integer a=new Integ