Java包装类的自动拆装箱

Posted iamyzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 方法时,类型相同,且值也相同,因此返回真。

 

以上是关于Java包装类的自动拆装箱的主要内容,如果未能解决你的问题,请参考以下文章

java包装类和自动拆装箱

IT十八掌作业_java基础第九天_多线程自动拆装箱

java中的自动拆装箱

关于java的自动拆装箱若干细节问题

包装类自动拆装箱

Java支持的数据类型有哪些?什么是自动拆装箱?