• hashcode和==


    public class Main {
    public static void main(String[] args) {
    Object o=new Object();
    System.out.println(o+" "+o.hashCode());
    }
    }//会输出java.lang.Object@6bc7c054   1808253012,前一个字符串的@后面的十六进制数和第二个字符串的数值相同。

    hashcode方法实现了将类的实例经过hash算法以后得到的整数值进行返回。而equals方法则是直接将类的实例进行比较。

    hashcode方法对于普通类型对象和包装类型对象而言,是对内容的哈希。因此两个相同类的构造函数的对象的哈希码也不同。

    但是==比较的只是地址,而非内容。

    public class HelloWorld {
    public static void main(String []args) {
    Object o1=new Object();
    Object o2=new Object();
    System.out.println(o1.equals(o2));
    }
    }//输出false,因为o1和o2两个对象内容完全不相等,因此hashcode的结果也不相等。

    public class Main {
    public static void main(String[] args) {
    String s="a"+"ss";
    String s1="ass";
    String s2=new String("ass");
    System.out.println(s1.hashCode()+" "+s2.hashCode()+""+(s1==s));
    }
    }//s1不等于s2,但s等于s1,三者的哈希码都相等。

  • 相关阅读:
    Zookeeper入门(三)之工作流
    Zookeeper入门(二)之基础
    Zookeeper入门(一)之概述
    Docker删除/停止容器
    webbench安装和简单使用
    Notepad++ 7.3.2 Download 64-bit x64 / 32-bit x86
    7 常见问题
    6 完整测试
    5 安装Alloc服务
    4 安装MPush
  • 原文地址:https://www.cnblogs.com/riverer/p/2020_06_22_001.html
走看看 - 开发者的网上家园