Java之Integer数值比较
来源:互联网 发布:网络设计招聘信息 编辑:程序博客网 时间:2024/05/29 19:29
工作中偶然遇到下面的问题,mark以下
Integer数值比较。下面展示测试代码。
public static void main(String[]args){ testInteger(); } public static void testInteger() { Integer c = 127; Integer d = 127; assertOut("=--------------------------整形127--------------------------------"); assertOut(c == d); //true Integer e = 128; Integer f = 128; assertOut("=--------------------------整形128--------------------------------"); assertOut(e == f); //false }
为何Integer对象等于127便相等,而等于128则不等
Integer c = 127 ; 等价于 Integer c = Integer.valueOf(127);
Integer b = 128 ; 等价于 Integer b = Integer.valueOf(128);
Java的Integer使用过程中存在缓存,请看下面Java代码
int low = -128; int high = 127; Integer [] cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
Integer的缓存范围为:-128~127,当数值不再这个范围内的时候便会 创建新的Integer对象而不同对象之间的直接是不想等的(两个对象的物理地址不同)。
阅读全文
0 0
- Java之Integer数值比较
- java中Integer数值比较
- 踩坑笔记之Integer数值比较
- Integer数值比较问题
- 细节之Integer数值(==)比较问题
- java之Integer类相等比较
- Java之Integer与int比较
- java Integer 比较
- JAVA Integer 比较问题
- Java Integer 比较
- java中int和integer比较,integer和integer比较
- java基础之Integer和Long对象相等比较
- java基础之Integer和Long对象相等比较 .
- java基础之Integer和Long对象相等比较 .
- Java之Integer与int类型数据的比较-yellowcong
- java基础Integer与Integer比较
- 关于Integer数值比较的问题以及不可变对象
- Integer包装类数值比较时值得注意的地方
- springmvc+mybatis整合下的日志配置
- erlang 数据结构总结
- 欢迎使用CSDN-markdown编辑器
- GIT LOG 命令
- eXtremeDB金融版横扫大数据基准测试指标项
- Java之Integer数值比较
- App保持登录状态的常用方法
- ios 删掉archive 里的iOS Apps
- Java开发中 Echarts的使用
- AndroidStudio 设置signingConfigs让编译也能使用正式签名
- AS项目上传到oschina
- Linux查看端口、进程情况及kill进程
- Ubuntu16.04配置HA的MapReduce
- 对数log、lg、ln