一、區別:
1.Integer是int的包裝類,int則是java的一種基本的數據類型;
2.Integer變量必須實例化之后才能使用,而int變量不需要實例化;
3.Integer實際是對象的引用,當new一個Integer時,實際上生成一個指針指向對象,而int則直接存儲數值
4.Integer的默認值是null,而int的默認值是0。
二、Integer和int的比較
1.由於Integer實際是對一個Integer對象的引用,所以兩個通過new生成的Integer變量永遠是不相同的,因為New生成的是兩個不同的對象,其內存地址不同。下面運行的結果為false

2.Integer變量和int變量進行比較時,只要兩個變量的值相等,則結果就為True,(因為包裝類Integer和基本數據類型比較的時候,java會自動拆箱為int,然后進行比較,實際上就是兩個int變量進行比較),下面運行的結果為true

3.非new生成的Integer變量和new Integer生成的Integer變量比較的時候,結果為false(因為非new生成的Integer變量指向的是Java常量池中的對象,而new出來的對象指向的是堆中新建的對象,兩者內存地址不同),下面返回的是false

4.兩個非new出來的Integer對象,進行比較的時候,如果兩個變量的值區間在-127~128之間的時候,則返回的結果為true,如果兩個變量的變量值不在這個區間,則比較的結果為false。下面返回的是true

下面返回的是false

三、java 基本類型與引用類型的區別:
1.基本數據類型保存原始值,引用數據類型保存的是引用值(引用值就是指在對象中所處的地理位置)
