原题
答案解析
问题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不同