1. 程式人生 > >java中的自動裝箱拆箱

java中的自動裝箱拆箱

/**
		 * 自動裝箱,將基本型別轉化為物件
		 */
		Integer autoboxingInt = 10;
		//以上的宣告就是用到了自動的裝箱:解析為:Integer autoboxingInt = new Integer(10);
		//9是屬於基本資料型別的,原則上它是不能直接賦值給一個物件Integer的,但jdk1.5後你就可以進行這樣的宣告。自動將基本資料型別轉化為對應的封裝型別,成為一個物件以後就可以呼叫物件所宣告的所有的方法。
		
		/**
		 * 自動拆箱,將物件轉化為基本資料型別。因為物件是無法計算的,這裡隱性的自動拆箱了。
		 */
		int unboxingInt = autoboxingInt;
		System.out.println(autoboxingInt - 1);
		
		/**
		 * Integer深入理解,給Integer直接賦值時,當範圍在-127到128時,會呼叫快取中的值。
		 */
		Integer integer1 = 10;
		Integer integer2 = 10;
		System.err.println("integer在-128到127之間的物件是相等的,因為java在底層進行了快取,用來提高效率。"+(integer1 == integer2));
		Integer integer3 = 128;
		Integer integer4 = 128;
		System.err.println("integer在-128到127之間的物件是相等的,超過了就不是同一個物件了。128就超過了範圍。"+(integer3 == integer4));