package Integer;
/**
*
* @author Administrator
* 測試自動拆箱與自動裝箱
* 還有一些緩存的問題!
*/
public class Test02 {
/**
* @param args
*/
public static void main(String[] args) {
//自動裝箱
Integer a = 1000; //Integer是一個常用類,而這樣的寫法只適合基本數據類型,按照常理應該是錯的,可是編譯器沒有報錯。
// 原因就是在java編譯器1.5 以後爲了書寫方便,所以設定了這種寫法,這種寫法等同於:
// Integer a = new (1000); 這個就是自動裝箱
//自動拆箱
Integer b = 1234; //自動裝箱
int c = b ; //這樣編譯器也沒有報錯,c是一個基本數據類型,而b是一個Integer的包裝類 按道理是不能裝換的
// 而這裏也沒有報錯,這個就是java1.5以後的自動拆箱。
Integer b1 = 1234;
System.out.println(b.equals(b1));
System.out.println(b==b1);
//緩存問題
System.out.println("#########################");
Integer d=127;
Integer d1=127;
System.out.println(d==d1); //這裏返回的是 : True 這裏明明是一個包裝類,爲什麼這裏返回的是一個True
// 原因是在java中Integer這裏的當數值在(-127到128)之間,那麼它就被當做一個對象來出來了..
System.out.println("#########################");
Integer e=128;
Integer e1=128;
System.out.println(e==e1); //所以這裏返回的是false 因爲大於127
}
}
java的自動裝箱與拆箱以及緩存的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.