回到顶部
建议27:谨慎包装类型的大小比较
基本类型是可以比较大小的,其所对应的包装类型都实现了接口,也说明了此问题,那我们来比较一下两个包装类型的大小,代码如下:
1 public class Client27 {2public static void main(String[] args) {3Integer i = new Integer(100);4Integer j = new Integer(100);5compare(i, j);6}7 8public static void compare(Integer i, Integer j) {9System.out.println(i == j);10System.out.println(i > j);11System.out.println(i < j);12 13}14 }
代码很简单,产生了两个对象,然后比较两个的大小关系,既然包装类型和基本类型是可以自由转换的,那上面的代码是不是就可以打印出两个相等的值呢?让事实说话,运行结果如下:
false false false
竟然是3个false,也就是说两个值之间不相等,也没大小关系,这个也太奇怪了吧 。不奇怪,我们来一 一解释:
i==j:在java中"=="是用来判断两个操作数是否有相等关系的,如果是基本类型则判断值是否相等,如果是对象则判断是否是一个对象的两个引用,也就是地址是否相等,这里很明显是两个对象,两个地址不可能相等 。i>j 和 i" 和 "
- 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起!...
- 开发者干货合集!阿里开源,移动开发,机器学习等海量资源限时开放!...
- 个人开发app可以上架吗
- 中天城投河东开发公司,中天城投集团遵义有限公司介绍?
- 精鼎医药研究开发有限公司,中国CRO公司都由哪些
- 中啡咖啡怎么样,java中咖啡标志怎么设置大小
- 如何开发合成物品功能?
- web前端技术:学习HTML、CSS、JavaScript
- 个人起诉开发商很难,多人联名起诉开发商,法院怎么收费
- CycleGAN生成车牌记录