关于Integer的一些"=="比较
来源:互联网 发布:网络公安举报电话 编辑:程序博客网 时间:2024/06/05 10:23
首先看第一道题:
Integer a = 128;
Integer b = 128;
System.out.println(a==b);
这道题答案是什么呢?
再来看第二道题:
Integer a = 127;
Integer b = 127;
System.out.println(a==b);
看上去差不多吧,那这道题答案又是什么呢?
答案:1.false
2.true
为什么两道题的答案不一样呢?
来看看Integer的封装吧:
- Java code
- public static Integer valueOf(int i) { final int offset = 128; if (i >= -128 && i <= 127) { // must cache return IntegerCache.cache[i + offset]; } return new Integer(i); }
当你直接给一个Integer对象一个int值的时候,其实他是调用了valueOf这个方法,然后你赋得这个值很特别,是128,那么没有进行cache方法,那么就相当于new了一个。所以你的那两句代码就类似于:
- Java code
- Integer a = new Integer(128);Integer b = new Integer(128);
这个时候再问你这两个==呢?你就知道是false了。如果你把这个数换成127,再执行:
- Java code
- Integer a = 127;
- Integer b = Integer.valueOf(127);
结果就是true。
- 关于Integer的一些"=="比较
- Integer的 == 比较
- 关于Integer比较的问题
- 关于Integer的一些知识
- Integer大小比较的一些事
- integer ==比较
- 关于Integer的"=="
- Integer与int的==比较
- 关于Integer大小比较的问题
- 关于Integer大小比较的问题
- 关于Integer大小比较的问题
- 关于Integer大小比较的问题
- 关于int和Integer比较的问题
- 关于Integer大小比较的问题
- 关于Integer大小比较的问题
- 关于Integer大小比较的问题
- 关于Integer大小比较的问题
- 关于Integer、 int、 String 的比较判别
- .net学习网站汇总
- 经典SQL语句
- 会员制营销和Email营销
- XNA + HLSL 之小小心得
- 传智播客erp项目学习,了解软件开发流程,使用apache的文件上传组件
- 关于Integer的一些"=="比较
- 《How Tomcat Works》读书笔记(五):生命周期
- 《管家老婆》软件介绍
- PHP连接数据库专题
- 会员制营销和Email营销
- 轻松一下,晒晒新入手的GPS
- 空闲时读一读
- TIF格式图像文件初探
- [转载]Streaming API for XML (StAX) 简介