当前位置: 首页 > 面试题库 >

如何在Java中检查两个引用是否都包含同一对象?

姚昊焱
2023-03-14
问题内容

我正在寻找C / C ++中相当于Java的指针比较。

假设我正在从第三方调用类的对象的getSomething()方法。我怎么知道getSomething()的实现是每次只是返回 相同的实例,
还是返回对象的不同实例?我 不是
要检查两个对象是否相同,而是需要检查它们是否是相同实例。这样做的动机是,如果第三方实现每次都创建一个新实例,则可能可以通过不每次都调用该方法来优化代码。假设在运行时每秒1000次调用getSomething()

从各篇文章中我读到的内容,我不应该依赖hashCode()。在这种情况下,该怎么做?


问题答案:

根据==(标识)运算符,引用类型等效时,引用类型“指向”同一对象。

问题说:

我不是要检查两个对象是否 相同 ,而是需要检查它们是否是 同一实例 (重点是我的)

您实际上将平等与身份混合在一起(就像我最初在答案中所做的那样)。同一实例 就是身份 。相同的价值就是 平等



 类似资料:
  • 问题内容: x和y是两个变量。 我可以使用来检查它们是否相等,但是如何检查它们是否具有相同的身份? 例: 现在为True,因为x和y相等,但是x和y不是同一对象。 我正在寻找在那种情况下应该是假的东西。 问题答案: 您可以用来检查两个对象是否具有相同的标识。

  • 问题内容: 我只是想知道如何检查TreeMap>是否包含Java中的值?例如: 当我使用containsValue()或contains()方法时,我总是会得到false。有人知道为什么,可以给我建议吗? 谢谢爱德 问题答案: 您正在测试以查看地图是否包含字符串“ square”-但是地图中的值是ArrayList 对象。 如果知道要查找形状,则可以首先获取“形状”列表,然后进行测试以查看其是否包

  • 问题内容: 我想要这样一个验证,即“我的字符串”必须至少包含一个字母。 我正在使用以下内容: 即使在我的字符串中,标志也会给我 问题答案: 您想要的正则表达式是,但是您需要使用方法。 此页面将让您根据输入测试正则表达式。 正则表达式测试页 这里有一个Java正则表达式教程。 Java正则表达式教程

  • 问题内容: 有什么方法可以检查一个集合是否包含一个或多个具有比使用contains循环两次更好的性能的值? 在其他意义上看起来像这样 问题答案: 循环的实现遍历每个元素并进行测试,因此调用两次 效率低下 。 您可以编写自己的循环,使用已编译的regex 模式同时检查两者,同时查找两个名称:

  • 问题内容: 如何检查一个DOM元素是否是另一个DOM元素的子元素?有内置的方法吗?例如,类似: 要么 如果没有,那么有什么想法怎么做?它还需要跨浏览器。我还应该提到,孩子可以嵌套在父级以下的多个级别。 问题答案: 更新: 现在有一种本地方法可以实现此目的。。在评论中也提到了答案。 旧答案: 使用该属性应该可以。从跨浏览器的角度来看,它也是非常安全的。如果已知这种关系是一级的,则可以简单地检查一下:

  • 有没有什么简单的方法可以检查两个数组是否包含任何公共元素?这合适吗?数组包含类型char。 提前道谢!