java - 字符串哈希码

标签 java string string-literals

小问题。

String s1 = "test";
String s2 = "test";

s1,s2 的 hashCode 值相同

String sn1 = new String("java");
String sn2 = new String("java");

他们都说 sn1 和 sn2 有不同的 hashCode 值,它们是不同的对象

当我打印 hashCode 值时,它给出相同的值 这意味着 sn1 和 sn2 是否指向同一个对象?

最佳答案

如果对象相等,哈希码应该相等(然而,反之则不正确)。由于

  sn1.equals(sn2) // true

我们可以得出结论

  sn1.hashCode() == sn2.hashCode() // true

关于java - 字符串哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22526819/

相关文章:

java - 我无法在 Android View 中设置自定义字体

java - java中字符串常量的连接

java - Java中以下字符串创建了多少个对象

c++ - 为什么 Utf-8 在 Qt 5 中无法工作?

java - Android 在发出多个 http 请求时增加堆 fragment 情况

java - MediaPlayer从毫秒转换为分钟和秒

c - 分配给字符串数组

C - 我可以从 char * 创建一个 const char * 变量吗?

c++ - 区分字符串文字和字符数组

java - View 应该负责停止和开始在MVC中监听模型吗?