首页 > 解决方案 > 为什么它返回false?hashCode也相等

问题描述

我正在尝试解决这个问题,但它返回错误。HashCode 和两个文字中的数据是相同的,如果

String s1="java";
String s2="JAVA".toLowerCase();
System.out.println(s1==s1);

参考图像

标签: javascriptstring

解决方案


public class HelloWorld{

     public static void main(String []args){
        System.out.println("Hello World");
         String s1="java";
        String s2="JAVA".toLowerCase();
        System.out.println(s1.hashCode());
        System.out.println(s1.hashCode());
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));
     }
}

输出

.equals()将比较变量的值。

==将比较变量内存位置的值。

Hashcode是根据字符串的内容而不是字符串的位置计算的。

在您使用String class时,它是参考类型,请在此处查找文档


推荐阅读