java的自動裝箱與拆箱以及緩存的問題

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
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章