java - 哈希码值相同

标签 java

为什么哈希码值相同?

public static void main(String args[])
{
    String s1="abc";
    String s2=new String("abc");
    System.out.println("Hashcode s1-:"+ s1.hashCode());
    System.out.println("Hashcode s2-:"+ s2.hashCode());
    if(s1==s2){
        System.out.println("==true:");
    } 
}

输出

Hashcode s1-:96354
Hashcode s2-:96354

最佳答案

两个相等对象的哈希码应该相等。

在本例中,对象是字符串,并且它们被视为相等,因为它们包含相同的字符序列“abc”。

如果您想要基于对象标识而不是相等的哈希码,请使用 System.identityHashCode() .

关于java - 哈希码值相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473353/

相关文章:

java - HTML5(canvas + JavaScript)中是否有等效的graphstream(Java)

java - 创建一个从 MySQL 返回值并在异步线程中进行查询的方法

java - 在Java中无法识别多个生产者/消费者何时完成

java - 了解 Java 中的本地类

java - 如何在 Java 中生成特定范围内的随机整数?

java - Spring SpEL - 仅当值不为空时设置属性

java - REST 流式 JSON 输出

java - javac 是否优化目标文件(*.class)?

java - 更新 Eclipse 的 Java 版本

java - 将图像转换为文本 - Java