天天看點

java int與integer的差別

int與integer的差別從大的方面來說就是基本資料類型與其包裝類的差別:

int 是基本類型,直接存數值,而integer是對象,用一個引用指向這個對象

1.Java 中的資料類型分為基本資料類型和複雜資料類型

int 是前者而integer 是後者(也就是一個類);是以在類進行初始化時int類的變量初始為0.而Integer的變量則初始化為null.

2.初始化時:

  int i =1;Integer i= new Integer(1);(要把integer 當做一個類看);但由于有了自動裝箱和拆箱   (http://ycgit.blog.51cto.com/8590215/1637992),

  使得對Integer類也可使用:Integer i= 1;       

  int 是基本資料類型(面向過程留下的痕迹,不過是對java的有益補充),Integer 是一個類,是int的擴充,定義了很多的轉換方法

  類似的還有:float Float;double Double;string String等,而且還提供了處理 <code>int</code> 類型時非常有用的其他一些常量和方法

  舉個例子:當需要往ArrayList,HashMap中放東西時,像int,double這種内建類型是放不進去的,因為容器都是裝 object的,這是就需要這些内建類型的外覆類了。

  Java中每種内建類型都有相應的外覆類。

  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&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;();可以  而List&lt;int&gt; list = new ArrayList&lt;int&gt;();則不行

總而言之:如果我們定義一個int類型的數,隻是用來進行一些加減乘除的運算or作為參數進行傳遞,那麼就可以直接聲明為int基本資料類型,但如果要像

對象一樣來進行處理,那麼就要用Integer來聲明一個對象,因為java是面向對象的語言,是以當聲明為對象時能夠提供很多對象間轉換的方式,與一些常用

的方法。自認為java作為一們面向對象的語言,我們在聲明一個變量時最好聲明為對象格式,這樣更有利于你對面向對象的了解。

Java   提供兩種不同的類型:引用類型和原始類型(或内置類型)。Int是java的原始資料類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。   

  原始類型           封裝類   

  boolean             Boolean   

  char                   Character   

  byte                   Byte   

  short                 Short   

  int                     Integer   

  long                   Long   

  float                 Float   

  double               Double   

引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的資料結構存儲,當引用類型和原始類型用作某個類的執行個體資料時所指定的預設值。對象引用執行個體變量的預設值為   null,而原始類型執行個體變量的預設值與它們的類型有關。

  int   一般做為數值參數就夠了   

  integer   一般做類型轉換的時候用的較多

本文轉自 藝晨光 51CTO部落格,原文連結:http://blog.51cto.com/ycgit/1637989,如需轉載請自行聯系原作者