Integer 類和 int 項目應用坑點

變量儘量不要定義爲包裝類,儘量使用基本類型。

int和Integer的區別
1.存儲原理不一樣:
int:屬於簡單類型,不存在“引用”這個概念;其數據是存儲在棧空間中;
Integer:屬於繼承自Object的類,是按照java存儲對象的內存模型來存儲的;引用存儲在棧中,對象數據存儲在堆中;
基於這個原理不同,所以在進行參數傳遞的時候,int是值傳遞,其在棧中的數據不可變;
而Integer類型是引用傳遞,引用指向的內存地址中的數據是可以變化的,但是棧中的引用是不變的;
2.缺省值不一樣
int的初始化值是0 ,Integer初始化的值是null。
你不能把null值賦給int;
3.泛型支持不一樣
泛型支持Integer,並不支持int
如:
ArrayList list = new ArrayList();
你不能在泛型中寫int
4.行爲不一樣
int a =10;
Integer b= new Integer(10);
在方法調用中:
a是基本類型,並沒有什麼方法可言;因爲方法是類的特性。
b有很多方法,因爲方法是對象中定義的;一些轉換操作,如轉爲字符串等
總之,兩者還是有比較大的區別。

public static void main(String[] args) {
        Integer i =329;
        Integer m= new Integer(329);
        int n = 329;
        Integer x =329;
        System.out.println(i==m);
        System.out.println(i==n);
        System.out.println(i==x);
    }

運行結果爲false  true  false

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章