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

    equals比较的也是地址,但是在使用时,它一般都是经过重写equals()方法的,从而是对“值”进行比较的

    Java语言对equals()的要求如下,这些要求是必须遵循的:
      对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。
      反射性:x.equals(x)必须返回是“true”。
      类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。
      一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是“true”。
      任何情况下,x.equals(null),永远返回是“false”;x.equals(和x不同类型的对象)永远返回是“false”。
      以上这五点是重写equals()方法时,必须遵守的准则,如果违反会出现意想不到的结果,请大家一定要遵守

      hashCode方法默认返回对象的地址,String,Integer等封装类型对它进行了重写返回一个整数
      该整数的取值来自于当前字符串的每个字母的编码值.公示如下
      public int hashCode(){
        return “abcde”.hashCode();
      }

    "=="比较的是地址,

  • 相关阅读:
    通过一个程序来理解PHP里面的抽象类【1】
    mycheckpoint 把玩手记
    Mysql 大量 unauthenticated user
    零基础学习Oracle 10G视频教程
    mysql show processlist命令 详解
    c# 中的事件
    c# 中方法签名 指的是?
    c# 中的索引
    介绍如何使用C#中的委托
    C# 语法学习笔记
  • 原文地址:https://www.cnblogs.com/xinchen01/p/10969238.html
Copyright © 2011-2022 走看看