Java_equals和“==”的区别

Posted 在路上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
    一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变。

    

以上是关于Java_equals和“==”的区别的主要内容,如果未能解决你的问题,请参考以下文章

汇编movsx和movzx的区别

map和mutilmap的区别

1.dash,crash的区别

.com和.net有啥区别?

1.dash,crash的区别.

SFTP 和FTPS的区别