javascript - 为什么它返回false?hashCode也相等
问题描述
我正在尝试解决这个问题,但它返回错误。HashCode 和两个文字中的数据是相同的,如果
String s1="java";
String s2="JAVA".toLowerCase();
System.out.println(s1==s1);
解决方案
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
时,它是参考类型,请在此处查找文档
推荐阅读
- python - 没有为 sqlite3 找到匹配的分布
- java - 如何使用 id 获取存储在数据库中的帖子记录的“内容”
- sql - 需要你的帮助:我有这个查询导致一个数组,我希望有数组长度。找不到执行此操作的正确语法
- html - 网格中的内容无法正确显示
- javascript - 通过 <%= content_tag %> 从 Rails 视图向 Javascript 传递数据的问题
- syntax - 使用 Python shutil.copy 覆盖文件会出现语法错误
- java - 试图在 groovy 中编写一个通用的枚举工具类
- php - 从 csv 文件创建页面
- json - Angular:将 httpClient Json 列表响应映射到 Typescript 类
- grpc - 为什么术语存根用于 RPC?