Java包装类的自动拆装箱

题目:

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 方法时,类型相同,且值也相同,因此返回真。

 

posted @ 2018-04-21 21:48  盛世半月  阅读(285)  评论(0编辑  收藏  举报

载入天数...载入时分秒...