Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP
Posted 琦彦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP相关的知识,希望对你有一定的参考价值。
原题
答案解析
问题1
参考答案
A 运行时异常
解题思路和原因
(Integer) null 在拆箱过程中有NPE问题
我的思考
如果需要返回null,其中(Integer) null 多加个Integer时多余的
问题2
参考答案
D 以上答案都不是
解题思路和原因
结论: 最总输出值为 3.0
分析:
判断条件(toBe || !toBe)始终为true
但是new Integer(3) 和new Float(1)是不同类型, 返回是又需要转换为数值类型,则会在运算时做类型提升
问题3
参考答案
A Hello 1 null 3
解题思路和原因
map的内容为{1024=B, 1=Hello, 1024=A}
使用了putIfAbsent方法, 还出现了相同的key-1024, 是因为两次1024作为key的hashcode不同。如果使用字符串类型的“1024”就不会出现这个问题,Java的String内部实现了hashcode,避免了hash冲突。
map.get(1024) 得到的结果为null,也是因为put和get时候1024的的hashcode不同
以上是关于Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP的主要内容,如果未能解决你的问题,请参考以下文章