Java中 int與integer的區別
int與integer的區別從大的方面來說就是基本資料型別與其包裝類的區別:
int 是基本型別,直接存數值,而integer是物件,用一個引用指向這個物件
1.Java 中的資料型別分為基本資料型別和複雜資料型別
int 是前者而integer 是後者(也就是一個類);因此在類進行初始化時int類的變數初始為0.而Integer的變數則初始化為null.
2.初始化時:
使得對Integer類也可使用:Integer i= 1;
int 是基本資料型別(面向過程留下的痕跡,不過是對java的有益補充),Integer 是一個類,是int的擴充套件,定義了很多的轉換方法
類似的還有:float Float;double Double;string String等,而且還提供了處理 int
舉個例子:當需要往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<Integer> list = new ArrayList<Integer>();可以 而List<int> list = new ArrayList<int>();則不行
總而言之:如果我們定義一個int型別的數,只是用來進行一些加減乘除的運算or作為引數進行傳遞,那麼就可以直接宣告為int基本資料型別,但如果要像
物件一樣來進行處理,那麼就要用Integer來宣告一個物件,因為java是面向物件的語言,因此當宣告為物件時能夠提供很多物件間轉換的方式,與一些常用
的方法。自認為java作為一們面向物件的語言,我們在宣告一個變數時最好宣告為物件格式,這樣更有利於你對面向物件的理解。