Java int 與 Integer 區別

學習借鑑(其實搬了別人的好多)和本身的理解,可能會有較多錯誤,若有疑問聯繫我呀。java

  • int  是基本數據類型, Integer 是引用類型,也就是一個對象。
  • int 儲存的是數值,Integer 儲存的是引用的對象的地址。
  • int 佔用內存少、Integer 對象佔用內存多,由於它須要存儲對象的元數據。
  • 不是用 new 生成的 Integer 變量與 new Integer ( ) 生成的變量不一樣,由於前者是在常量池中的,後者是在堆中的,兩個的地址不一樣。
  • 兩個不是 new 生成 Integer 對象比較,若是變量的值在 [ -128 , 127 ] 之間,比較結果爲 true,不然是 false。
  • Integer 變量(不管是否 new 生成的)與 int 類型變量來比較,結果都是 true 。這由於要比較時, Integer都會自動拆箱成 int ,這樣子比較就是在比較數值的大小了。

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Integer x = new Integer(10);
		Integer y = 10;
		Integer z = new Integer(10);
		int temp = 10;
		System.out.println(x == y);  //false
		System.out.println(x == z);  // false
		System.out.println(temp == x); // false
		System.out.println(temp == y); // false
	}

}
相關文章
相關標籤/搜索