zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Android简易注解View(java反射实现)
    android注解[Jake Wharton Butter Knife]
    Android渠道汇总
    SVN管理规范
    马上着手开发iOS应用程序一 todolist
    MVC记录
    OC中intValue要注意的地方
    将从数组中取到的字符串赋值给了UIImage导致的错误
    一个null引发的错误
    记录一些容易忘记的属性 -- UITabBarController
  • 原文地址:https://www.cnblogs.com/liutoutou/p/3532501.html
Copyright © 2011-2022 走看看