Java中Integer与int的区别

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是面向对象的语言,所以当声明为对象时可以提供不少对象间转换的方式,与一些经常使用的方法。

相关文章
相关标签/搜索