答:不一定
为什么不一定呢?因为有一些不同的中文和字母在进行hashcode后会生成同样的hashcode
package com.lp.utils;
public class Test {
public static void main(String[] args) {
String s ="Ea";
String d ="FB";
System.out.println("字符串的哈希码为s :" + s.hashCode() );
System.out.println("字符串的哈希码为d :" + d.hashCode() );
StringBuilder s1 =new StringBuilder("Ea");
StringBuilder d1 =new StringBuilder("FB");
System.out.println("字符串的哈希码为s1 :" + s1.hashCode() );
System.out.println("字符串的哈希码为d1 :" + d1.hashCode() );
String s2 ="1";
String d2 ="2";
System.out.println("字符串的哈希码为s2 :" + s2.hashCode() );
System.out.println("字符串的哈希码为d2 :" + d2.hashCode() );
}
}
以上是演示代码,下面贴出控制台输出
可以看出s和d对象生成的hashcode是同样的2236,但是对象内容却不一样。
以上内容也是我在参考借鉴别人的例子,然后自己敲了一遍。