int與integer的區別從大的方面來講就是基本數據類型與其包裝類的區別:html
int 是基本類型,直接存數值,而integer是對象,用一個引用指向這個對象java
1.Java 中的數據類型分爲基本數據類型和複雜數據類型spa
int 是前者而integer 是後者(也就是一個類);所以在類進行初始化時int類的變量初始爲0.而Integer的變量則初始化爲null.code
2.初始化時:orm
int i =1;Integer i= new Integer(1);(要把integer 當作一個類看);但因爲有了自動裝箱和拆箱 (http://www.cnblogs.com/shenliang123/archive/2012/04/16/2451996.html),htm
使得對Integer類也可以使用:Integer i= 1; 對象
int 是基本數據類型(面向過程留下的痕跡,不過是對java的有益補充),Integer 是一個類,是int的擴展,定義了不少的轉換方法blog
相似的還有:float Float;double Double;string String等,並且還提供了處理 int
類型時很是有用的其餘一些常量和方法get
舉個例子:當須要往ArrayList,HashMap中放東西時,像int,double這種內建類型是放不進去的,由於容器都是裝 object的,這是就須要這些內建類型的外覆類了。string
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<Integer> list = new ArrayList<Integer>();能夠 而List<int> list = new ArrayList<int>();則不行
總而言之:若是咱們定義一個int類型的數,只是用來進行一些加減乘除的運算or做爲參數進行傳遞,那麼就能夠直接聲明爲int基本數據類型,但若是要像
對象同樣來進行處理,那麼就要用Integer來聲明一個對象,由於java是面向對象的語言,所以當聲明爲對象時可以提供不少對象間轉換的方式,與一些經常使用
的方法。自認爲java做爲一們面向對象的語言,咱們在聲明一個變量時最好聲明爲對象格式,這樣更有利於你對面向對象的理解。