2016-09-29 07:46发布
我同学京东面试, 被问到int和Integer是如何进行比较的? 他回答了intValue()函数自动装箱拆箱和Integer持有的缓存, 然后面试官说不对, 但是源码debug确实是intvalue()拆箱呀, 面试官究竟要的是什么答案呢?
刚写的,你执行一下看结果
这个得看你的代码如何来写了。Integer.equals(int)int == Integer 这种会把Integer转换为int(拆箱)进行比较,你会发现如果Integer如果是一个null值的时候会出现NullPointerException。至于面试官想要的答案,恐怕只有他自己清楚了。
Integer.equals(int)
int == Integer
Integer
int
null
NullPointerException
考虑-128到127之前的数字
话不多说:常量池
Integer.intValue()去比较值。包装类自动拆箱是不错的,在赋值,和运算的是直接可以用包装类的。但是始终是对象类型的。在使用“==”比较的时候会存在差异,楼上给出了这部分的答案。在包装类中在short范围类是可以直接比较的是没有问题的,但超出该范围就出问题。至于面试官想要的答案,只有他自己知道。
最多设置5个标签!
付费偷看金额在0.1-10元之间
刚写的,你执行一下看结果
这个得看你的代码如何来写了。
Integer.equals(int)
int == Integer
这种会把Integer
转换为int
(拆箱)进行比较,你会发现如果Integer
如果是一个null
值的时候会出现NullPointerException
。至于面试官想要的答案,恐怕只有他自己清楚了。
考虑-128到127之前的数字
话不多说:常量池
Integer.intValue()去比较值。包装类自动拆箱是不错的,在赋值,和运算的是直接可以用包装类的。但是始终是对象类型的。在使用“==”比较的时候会存在差异,楼上给出了这部分的答案。在包装类中在short范围类是可以直接比较的是没有问题的,但超出该范围就出问题。至于面试官想要的答案,只有他自己知道。
一周热门 更多>