java中的自動裝箱拆箱
阿新 • • 發佈:2019-02-07
/** * 自動裝箱,將基本型別轉化為物件 */ 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));