- 今天在继续开发商城项目时,遇到一个问题,我根据地址取出用户ID(地址唯一),代码如下:
1 | // 处理转账到自己的账户 |
这里我测试的时候输入的自己的
address
也进入不了在网上查了一下原因,大概是因为integer范围的问题
1 | static final Integer cache[] = new Integer[-(-128) + 127 + 1]; |
- 总结:这是源码中的,也就是说cache[]中已有-128到127,不在这范围的会新new ,这时可以理解比较是内存地址,
也就是是不是同一对象.
所以说当Integer的值不在-128到127的时候使用==方法判断是否相等就会出错,在这个范围之内的就会没有问题!
以后最好用equals