最近碰到的一个面试小题,觉得很有意思,拿出来给大家分享一下,很多人可能猛地一看没有什么区别,但是记住,越简单的问题那么肯定不是表面那么简单,其实原理可能大家都明白,但是能不能记住是一回事啊:
简单的来说,就是一个基本数据类型的判断问题,让你比较输出结果
看到这里很多人第一反应就是,数据相等啊,那就应该都是TRUE才对,忽略了一点,首先需要注意的是 f1、f2、f3、f4 四个变量
都是 Integer 对象引用,所以下面的==运算比较的不是值而是引用。装箱的本质是什么呢?当我们给一个 Integer 对
象赋一个 int 值的时候,会调用 Integer 类的静态方法 valueOf,简单的说,如果整型字面量的值在-128 到 127 之间,那么不会 new 新的 Integer 对象,而是直接引用常量池
中的 Integer 对象,但是如果大于127的范围,那么这时就不再是单纯的数值比较了,而是地址值,这时候会产生new的新对象,所以第二个应该是false.## 标题
基本数据类型的小注意事项
最新推荐文章于 2022-03-01 10:50:06 发布