1. 程式人生 > >Java包裝類的自動拆裝箱

Java包裝類的自動拆裝箱

true space cells 報錯 div ola ack 不同 text

題目:

Integer i = 42; Long l = 42l; Double d = 42.0;

下面為true的是

A.(i == l)

B.(i == d)

C.(l == d)

D.i.equals(d)

E.d.equals(l)

F.i.equals(l)

G.l.equals(42L)

答案:G

解析:同類型的進行比較,如Integer 與int,Long與long進行==比較時,會自動拆箱;不同類型之間進行比較,如果有一方為非包裝類,則會自動拆箱。如果兩方都為包裝類,則不會拆箱,且不能比較,編譯會報錯,因此ABC均錯誤。DEF 調用 equals 方法,因為此方法先是比較類型,而 i , d , l 是不同的類型,所以返回假。選項 G ,會自動裝箱,將 42L 裝箱成 Long 類型,所以調用 equals 方法時,類型相同,且值也相同,因此返回真。

Java包裝類的自動拆裝箱