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是面向對象的語言,所以當聲明爲對象時可以提供不少對象間轉換的方式,與一些經常使用的方法。

相關文章
相關標籤/搜索