java中==、equals和hashcode的例子

2023-12-03

鉴于这种:

String s1= new String("abc");
String s2= new String("abc");
String s3 ="abc";
System.out.println(s1==s3);
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println(s3.hashCode());

输出是:

false
false
true
true
96354
96354
96354

Here ==为每个对象提供 false,但每个 String 对象的哈希码是相同的。为什么会这样呢?


==确实比较真正的平等objects(我的意思是 - 两个引用都指向同一个对象),而不是它们的内容,而.equal比较内容(至少对于字符串)。

String a = new String("aa");
String b = new String("aa"); 

a and b分别指向不同的对象。

还要注意,如果对象相等,那么它们的 hashchodes 必须相同,但如果 hashcode 相同,并不意味着对象相等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中==、equals和hashcode的例子 的相关文章

随机推荐

  • 熊猫没有正确计算行数

    所以我有这个数据框 filename width height class xmin ymin xmax ymax 0 128782 JPG 640 512 Panel 36 385 119 510 1 128782 JPG 640 512
  • 如何使用 rxExec 运行标准 R 远程?

    我试图通过函数 rxExec 调用标准 R 代码来远程执行代码 我的计算上下文是 RxInSqlServer 并且与服务器的连接正常 一般情况下这个电话可以吗 或者是否有更好的方法通过 SQL R Server 服务执行标准 R 远程 fu
  • 在不使用 sys.exit() 的情况下关闭 ipython 笔记本中的 pyqt 小部件

    我正在尝试在 ipython 笔记本中运行一些 pyqt5 教程 但有一个问题 每次运行代码块时 内核都会强制重新启动 这是导致问题的最小代码 import sys from PyQt5 QtWidgets import QApplicat
  • Laravel Associate 方法在视图中返回空数组

    我正在开发一个简单的社交网络 我现在正在处理回复部分 我将帖子 状态模型与用户相关联 如下所示 但是当我尝试在视图中访问时 它返回空数组 帖子模型中的回复功能 public function postReply Request reques
  • Boost::filesystem、std::sort:在排序过程中保留信息时遇到问题

    我正在尝试使用std sort包含从读取的信息的数据类型boost filesystem dictionary iterator 看来排序算法已经完成了n比较 n作为目录中文件的数量 该信息会丢失 最终会出现段错误 Valgrind 说我正
  • Python 连接组件与像素列表

    在matlab中你可以使用 cc bwconncomp bimg pixels cc PixelIdxList i 获取每个连接组件的像素列表 python 的等价物是什么 我试过 from skimage import measure l
  • 全局变量有什么不好呢? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么在 Javascript 中创建元素全局变量是不好的 在 JavaScript 圣经中 据说全局变量 不使用 var 关键字声明的变量 是一件非常糟糕的事情 好吧 与 Java 或 C 等强类型
  • 选中/取消选中所有复选框

    我试图有一个复选框来选中 取消选中所有其他复选框 我正在使用这段代码 checkall toggle function kselItems attr checked checked function kselItems removeAttr
  • android:使用自定义适配器在自定义 ListView 中添加 SearchView

    我正在创建一个带有 3 个选项卡片段的应用程序 这是片段之一 数据显示在列表视图中 我在向列表视图添加搜索过滤器时遇到麻烦 我已将搜索视图添加到此片段和列表中 一切正常 没有任何错误 但是 当输入搜索视图列表时 不会排序 如果有人知道 请告
  • Linux 服务器中的“java.sql.SQLException:I/O 错误:连接重置”[重复]

    这个问题在这里已经有答案了 我有一个连接到oracle数据库的java程序 有时它可以工作 有时会显示以下错误消息 线程 主 java sql SQLRecoverableException 中出现异常 IO 错误 连接重置 at orac
  • 尾递归没有发生

    我在用着g Ubuntu 4 8 2 19ubuntu1 4 8 2在 C 项目中 我写了一个函数来执行此操作 template
  • Groovy:获取持续时间(以年为单位)

    在 groovy 中运行以下代码 import groovy time import org codehaus groovy runtime TimeCategory def today new Date use TimeCategory
  • php相对url到绝对url的转换,最终使用基本href html标签[重复]

    这个问题在这里已经有答案了 我有一个加载了 DOM 的页面 然后我想将锚点的所有相对 URL 转换为绝对 URL 最终根据 tag 我正在寻找经过测试的东西 而不是一些在某些情况下失败的随机脚本 我对解析每种形式的 href 用法感兴趣 h
  • 无法使用 npm react-native-view-shot 在缓存中找到图像

    我在用npm 反应本机视图镜头捕获图像中的视图并保存在本地设备上 当我尝试采取snap shot使用下面的代码我得到path但不是该位置的图像 下面是代码和输出 Path file data user 0 com caryn cache R
  • Cloud Firestore:现在是否可以进行 2 个以上字段的复合范围查询?

    我需要像这样获取范围数据 ex 10 lt a lt 20 30 lt b lt 40 a 和 b 两个字段现在都是索引键 我认为在这种情况下复合范围查询是最简单的方法 但在 Cloud Firestore 中 范围查询只能针对一个字段 e
  • java 删除数组中的重复项

    谢谢马科 我重写代码 尽量让它变得简单 这次真的可以编译了 但它只能删除彼此相邻的重复项目 例如 如果我输入 1 2 3 3 4 4 5 1 输出为 1 2 3 4 5 1 它最后无法拾取重复项 顺便说一句 刚接触这个网站 如果造成任何显示
  • c 模运算符

    当您将负运算符与 一起使用时会发生什么 例如 3 2或3 2 In C99 3 2 1 3 2 1 In C90 3 2 or 3 2 gt 实现定义
  • 让 CMake 设置 CTtest 在单个测试的输出周围打印页眉和页脚

    有没有一种方法 最好是从CMakeLists txt 建立ctest as to 在运行各个测试之前打印标题 运行各个测试后打印页脚 使页脚依赖于测试是否全部成功 页脚应出现在默认输出下方 The following tests FAILE
  • 奇怪但有效的 var 声明语法

    我经常使用这种语法 但我不明白为什么它能有效 var a 1 b a 1 console log b 2 如果你声明一个 var 在用逗号分隔它们之后 b已经看到a评价如何 这是为什么 它一直defined像这样 一 基本术语的定义 变量语
  • java中==、equals和hashcode的例子

    鉴于这种 String s1 new String abc String s2 new String abc String s3 abc System out println s1 s3 System out println s1 s2 S