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

  • 相关阅读:
    GUI基础学习
    常用类string的用法
    类。对象和包--补上周
    类.对象和包
    调用函数的注意事项
    函数的简单运用
    一维数组基础
    java中scanner类的用法
    数据库——DQL(语句查询)
    数据库——JDBC
  • 原文地址:https://www.cnblogs.com/liutoutou/p/3532501.html
Copyright © 2011-2022 走看看