Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP

Posted 琦彦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP相关的知识,希望对你有一定的参考价值。

原题

Java面试题: 基础考核-拆箱装箱, 数据类型, MAP

https://glory.blog.csdn.net/article/details/117279415

答案解析

问题1

参考答案

A 运行时异常

解题思路和原因

(Integer) null 在拆箱过程中有NPE问题

我的思考

如果需要返回null,其中(Integer) null 多加个Integer时多余的

问题2

参考答案

D 以上答案都不是

解题思路和原因

结论: 最总输出值为 3.0

分析:

  1. 判断条件(toBe || !toBe)始终为true

  2. 但是new Integer(3) 和new Float(1)是不同类型, 返回是又需要转换为数值类型,则会在运算时做类型提升

问题3

参考答案

A Hello 1 null 3

解题思路和原因

map的内容为{1024=B, 1=Hello, 1024=A}

  1. 使用了putIfAbsent方法, 还出现了相同的key-1024, 是因为两次1024作为key的hashcode不同。如果使用字符串类型的“1024”就不会出现这个问题,Java的String内部实现了hashcode,避免了hash冲突。

  2. map.get(1024) 得到的结果为null,也是因为put和get时候1024的的hashcode不同

以上是关于Java面试题答案解析: 基础考核-拆箱装箱, 数据类型, MAP的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题|什么是装箱?什么是拆箱?

Java基础 自动装箱和拆箱面试题

2019年自做407道 Java面试题 答案

Java基础——深入剖析Java中的装箱和拆箱

Java基础 -- 字符串类(StringStringBufferStringBuilder)自动装箱与拆箱

面试基础题