首页 > 解决方案 > Java比较对象的效率

问题描述

在Java里面比较String Object的Hashcode和直接比较String Object两者谁更高效,为什么

  public static void main(String[] args) {
     String a = "Hello";
     String b="Hello";
     int i = a.hashCode();
     System.out.println(i);
     int v = b.hashCode();
     System.out.println(v);

     if (i==v){
        System.out.println("ture");
      }else {
        System.out.println("false");
    }
    }

标签: java

解决方案


hashCodes 是一条捷径,而不是真正的平等测试。相等的两个对象应该具有相同的哈希码,但相反不一定正确。例如,字符串"BBAa""AaBB"具有相同的哈希码(至少在 OpenJDK 8 中,它们都是 2031744),但绝对相等。


推荐阅读