当前位置: 首页 > news >正文

integer==与equals()结果不同

1、问题

代码运行一段时间后发现功能异常,不按预期的逻辑执行。

代码大概如下: 

查找模板编码是xxxx的所有模板,比较最新的版本号,是不是正确的。模板版本号,是从1开始,每编辑一次加1。 正常情况,max(bbh)和mbList的size是相等的、

List<Mb> mblist = xxDao.find("mbbm=xxxx")

Integer zxbbh = 查询最新版本号

if( zxbbh==mblist.size){

//dosomething

}

2、问题原因

(1)在测试环境怎么样都复现不了问题。后来把生成环境数据表复制出来,重现了问题。

多次编辑模板,达到100多次,问题出现

(2)integer的源码

Integer 在范围 -128 到127之间,数据初始化走的缓存,大了127就是new

public static Integer valueOf(int i) {if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);
}

(3)结论:integer比较要用equals()


http://www.mrgr.cn/news/71320.html

相关文章:

  • nginx 配置lua执行shell脚本
  • 金融科技白皮书:2022-2023年度回顾与前瞻
  • 【Python】30个Python爬虫的实战项目!!!(附源码)
  • 多线程并发造成的数据重复问题解决方案参考(笔记记录)
  • 第二十二章 Spring之假如让你来写AOP——Target Object(目标对象)篇
  • HBase Java基础操作
  • Node.js笔记
  • 卸载 Python
  • 微澜:用 OceanBase 搭建基于知识图谱的实时资讯流的应用实践
  • 内网穿透,打通远程和本地调试部署测试
  • 软件测试项目实战
  • 使用docker安装mysql8
  • 炼石亮相密码丰会,探索从密码合规到数据安全实战防护
  • qt QSerialPortInfo详解
  • 机器视觉和计算机视觉的区别
  • 阿兰图灵的人工智能艺术作品以 100 万美元的价格售出
  • 创意加速器3个AI工具,让创作速度超光速!
  • 【数字静态时序分析】复杂时钟树的时序约束SDC写法
  • 力扣 LeetCode 704. 二分查找(Day1:数组)
  • 移门缓冲支架的作用与优势
  • 继承的学习
  • 虚拟机的安装
  • 软件设计课程笔记
  • 一篇文章学会-图标组件库的搭建
  • 前端监控与埋点 全总结
  • 使用R语言survminer获取生存分析高风险和低风险的最佳截断值cut-off