6個關於Java包裝類拆箱和裝箱的判斷題,你能做對幾個?
阿新 • • 發佈:2018-12-13
雖然 Java 語言是典型的面向物件程式語言,但其中的八種基本資料型別並不支援面向物件程式設計,基本型別的資料不具備“物件”的特性——不攜帶屬性、沒有方法可呼叫。為此,Java為每種基本資料型別分別設計了對應的類,稱之為包裝類(Wrapper Classes)。
- 裝箱(Boxing):由基本型別向對應的包裝類轉換,例如:Integer a = 2;
- 拆箱(Unboxing):由包裝類向對應的基本型別轉換,例如:int v = a.intValue();
閒言少敘,問題如下:
- new Integer(2) == 2 ?
- new Integer(2) == new Integer(2) ?
- Integer.valueOf(2) == Integer.valueOf(2) ?
- Integer.valueOf(1024) == Integer.valueOf(1024) ?
- Integer.valueOf(2).intValue() == 2 ?
- new Integer(2).equals(new Integer(2)) ?
測試程式碼:
public class BoxingDemo { public static void main(String[] args) { System.out.println("new Integer(2) == 2 ?\t" + (new Integer(2) == 2)); System.out.println("new Integer(2) == new Integer(2) ?\t" + (new Integer(2) == new Integer(2))); System.out.println("Integer.valueOf(2) == Integer.valueOf(2) ?\t" + (Integer.valueOf(2) == Integer.valueOf(2))); System.out.println("Integer.valueOf(1024) == Integer.valueOf(1024) ?\t" + (Integer.valueOf(1024) == Integer.valueOf(1024))); System.out.println("Integer.valueOf(2).intValue() == 2 ?\t" + (Integer.valueOf(2).intValue() == 2)); System.out.println("new Integer(2).equals(new Integer(2)) ?\t" + (new Integer(2).equals(new Integer(2)))); } }
執行結果:
怎麼樣?你做對了嗎?歡迎留言~