1、Integer是int的包裝類,int則是java的一種基本資料型別
2、Integer變數必須例項化後才能使用,而int變數不需要
3、Integer實際是物件的引用,當new一個Integer時,實際上是生成一個指標指向此物件;而int則是直接儲存資料值
4、Integer的預設值是null,int的預設值是0
延伸:
Integer i = new Integer(100); Integer j = new Integer(100); System.out.print(i == j); //false,因為引用的地址不同 //Integer變數和int變數比較時,只要兩個變數的值是相等的 Integer i = new Integer(100); int j = 100; System.out.print(i == j); //true //非new生成的Integer變數和new Integer()生成的變數比較時,結果為false。 //因為非new生成的Integer變數指向的是java常量池中的物件, //而new Integer()生成的變數指向堆中新建的物件,兩者在記憶體中的地址不同 Integer i = new Integer(100); Integer j = 100; System.out.print(i == j); //false //對於兩個非new生成的Integer物件,進行比較時, //如果兩個變數的值在區間-128到127之間,則比較結果為true(java對於-128到127之間的數,會進行快取,不會重新new), //如果兩個變數的值不在此區間,則比較結果為false Integer i = 100; Integer j = 100; System.out.print(i == j); //true Integer i = 128; Integer j = 128; System.out.print(i == j); //false