zoukankan      html  css  js  c++  java
  • Java_equals和“==”的区别

    1. 对于基本数据类型

      它们的比较,应该用“==”,比较的是他们的值。

    2. 引用数据类型

      “==”判断的是对象是否为同一个,也就是它们内存中的存放地址是否一样,一样,则返回true,否则返回false。

    3.equals方法:

      1)声明格式
          public  boolean equals(Object obj);

      2) 其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false. 此时用法和“==”相同。

      但是,重写equals方法后,可以用于比较两个对象的内容是否相同,不看地址。

      3)重写equals方法应满足

        任何时候,对于非空引用x,都应做到x.equals(null)返回false。

      4)特性

        自反性:对任意引用值X,x.equals(x)的返回值一定为true.
        对称性:对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为true;
        传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true.
        一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变。

        

  • 相关阅读:
    作为一个前端,可以如何机智地弄坏一台电脑?
    Mysql数据库字符集问题
    代码扫描工具 SonarQube Scanner 配置 & Jenkins 集成
    【C++】统计代码覆盖率(四)
    【Jenkins】各项配置
    python小知识点汇总
    MobaXterm使用
    PHP代码覆盖率
    golang代码覆盖率
    压测工具Locuse的使用
  • 原文地址:https://www.cnblogs.com/hxliang/p/5544893.html
Copyright © 2011-2022 走看看