zoukankan      html  css  js  c++  java
  • [项目bug收集整理1]Integer 对象的相等比较

    某个ORM 实体类ClaasA含有域 Integer id.

    比较两个类的该id是否相等,要用equals,而不能用==.

    因为Integer的 == 比较,在-128~127之间,由于存在cache静态数据(具体可参见Integer的JDK实现源码,或Effective Java书中介绍),故会相等。

    但如果不在该范围内比较,会不相等。

    如果项目实现中出现了这种灵异现象,一会逻辑符合,一会逻辑不符合或者测试环境符合,线上出问题,没准就是这种 相等的坑。

    一句话小结,==比较的是地址,equals比较的是内容。

  • 相关阅读:
    架构师之路
    责任链设计模式
    Junit框架分析
    线程详解
    课程总结
    IO流
    Java第四次作业
    Character string
    实训
    实训SI
  • 原文地址:https://www.cnblogs.com/akingseu/p/3408118.html
Copyright © 2011-2022 走看看