• Java学习--Equals与“==”


      在Java规范中,它对equals()方法的使用必须要遵循如下几个规则:

      equals 方法在非空对象引用上实现相等关系:

         1、自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。

         2、对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。

         3、传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。

         4、一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。

         5、 对于任何非空引用值 x,x.equals(null) 都应返回 false。

      在java中进行比较,我们需要根据比较的类型来选择合适的比较方式:

         1) 对象域,使用equals方法 。 
         2) 类型安全的枚举,使用equals或== 。 
         3) 可能为null的对象域 : 使用 == 和 equals 。
         4) 数组域 : 使用 Arrays.equals 。
         5) 除float和double外的原始数据类型 : 使用 == 。
         6) float类型: 使用Float.foatToIntBits转换成int类型,然后使用==。  
         7) double类型: 使用Double.doubleToLongBit转换成long类型,然后使用==。

    覆写equals时推荐使用getClass进行类型判断。而不是使用instanceof

  • 相关阅读:
    c#语音报时(含完整的声音资源文件).rar
    SQL 查看数据库表的容量大小
    c# 鼠标在控件上拖动 移动窗体 移动窗口
    C# winform 右下角弹出窗口结果
    Qt通用方法及类库8
    Qt通用方法及类库7
    Qt通用方法及类库6
    Qt通用方法及类库5
    Qt通用方法及类库4
    Qt通用方法及类库3
  • 原文地址:https://www.cnblogs.com/liutoutou/p/3532501.html
Copyright © 2020-2023  润新知