java.lang核心常用功能--提供對Java編程語言設計至關重要的類。
進入這章節,請打開 JAVA API 查詢, 點撃 java.lang (java.lang下的類不需import引入即可使用)
1
2
裝箱(boxing)和拆箱(unboxing)
包裝類(wrapper classes)對應原始資料型態(Primitive Data Types)
自動裝箱(boxing)
將原始資料型態賦給對應的包裝類
範例: Integer my = 5; //等同 Integer my = new Integer(5);
注意: 這裡的my被Integer類包裝了,所以my變數值是指向對象地址值
自動拆箱(unboxing)
將包裝類直接賦給對應的原始資料型態
範例: int i = my ; //等同 int i = my.intValue();
注意: 這裡的 i 變數值是拆箱後的數值
1.經過j2se5.0之後, 包裝類資料型態 可以與 原始資料型態 使用相同方式撰寫,增加撰寫的簡化與方便性。
2.使用包裝類資料型態的好處,是可以以 Object類 對象方式傳遞引用。
3.使用包裝類是 類--實例->對象 所以變數名存放的是對象的地址值而不是真正的內容值。
4.使用包裝類要比較時,要用包裝類的equals()方法(sun公司已重寫equals()方法),不可以使用 == 比較(包裝類型的變數是存放對象位址值)。
範例
public static void main(String[] args) {
Integer ref1 = 127;
Integer ref2 = 127;
System.out.println(ref1.equals(ref2)); //true
System.out.println(ref1 == ref2); //true
Integer ref3 = 128;
Integer ref4 = 128;
System.out.println(ref3.equals(ref4)); //true
System.out.println(ref3 == ref4); //false
}
說明
使用包裝類資料型態時,要注意:
整數數值自-128~127 時,同型態包裝相同的值時, 記憶體中只有 new 一個包裝類型的對象,毎一個同型態包裝相同值的變數名中存放的值全是指向該對象的地址值。所以運算時很可能對同一對象中的值操作,要非常小心。
如果超過-128~127 範圍時,會以另一個對象包裝。
equals比較兩Integer類型該變數值為對象位址,指向兩對象的內容值比較
== 比較兩Integer類型該變數值為對象位址,兩者變數值是否相等
包裝類對應資料型態的使用方法請自行參考API..
課後問題與操作
何謂原始資料型態?
原始資料型態的用法:
原始資料型態的轉換:
何謂Java外包類別?
只定義對象變數未賦值時,對象變數的值是多少?