int与Integer的区别从大的方面来讲就是基本数据类型与其包装类的区别:java
int 是基本类型,直接存数值,而Integer是对象,用一个引用指向这个对象.web
1.Java 中的数据类型分为基本数据类型和复杂数据类型安全
int 是前者而integer 是后者(Integer是java为int提供的封装类);所以在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.即Integer能够区分出未赋值和值为0的区别,int则没法表达出未赋值的状况。例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,因此用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,因此用el表达式在文本框中显示时,结果为0,因此,int不适合做为web层的表单数据的类型。对象
2.初始化时:开发
int i =1;Integer i= new Integer(1);(要把integer 当作一个类看);但因为jdk1.5以后有了自动装箱和拆箱(本身百度下装箱拆箱吧),使得对Integer类也可以使用:Integer i= 1; 字符串
int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充),Integer 是一个类,是int的扩展。泛型
Java中int和Integer关系是比较微妙的。关系以下:变量
1.int是基本的数据类型;百度
2.Integer是int的封装类;扩展
3.int和Integer均可以表示某一个数值;
4.int和Integer不可以互用,由于他们两种不一样的数据类型;
举例说明
ArrayList al=new ArrayList(); //这里没有指定泛型 因此均可以 可是数据不安全
int n=40;
Integer nI=new Integer(n);
al.add(n);//能够
al.add(nI);//能够
而且泛型定义时也不支持int:
如:List<Integer> list = new ArrayList<Integer>();能够
而List<int> list = new ArrayList<int>();则不行
总而言之:若是咱们定义一个int类型的数,只是用来进行一些加减乘除的运算or做为参数进行传递,那么就能够直接声明为int基本数据类型,但若是要像对象同样来进行处理,那么就要用Integer来声明一个对象,由于java是面向对象的语言,所以当声明为对象时可以提供不少对象间转换的方式,与一些经常使用的方法。