java.lang.Integer的面试陷阱

众所周知基本数据类有各自的包装类,比如Boolean,Integer,Double

那这些包装类除了能提供装箱拆箱,类型转换的功能 ,还有一些比较偏门的知识点。

前几天去杭州面试,问了这样一个

Integer a=  ?;和 int

Integer b=?;(两个问号)是同一个整形。那么请问(a==b)打印出来是为true还是false

当时可高兴了,整这么简单的问题问老子实在太低估我了。

两个对象比较,当然不相等了。false!

面试官的表情让我知道,错了!

后来才想明白=后面那个字面量是有取值范围的

如果在[-128,127]区间,那么是true,

如果在那个区间以外那就是false;

 

 

因为,

这个区间内的话,是有缓存的。否则就要在内存中再分配一个空间

jvm为了性能的优化而搞得这么一个设计。

真是吃一堑长一智。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值