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

数组的equal方法如何工作?

吕高雅
2023-03-14
问题内容

嘿,我目前正在学习Java final,但我被一个简单的equals方法迷住了。

给出的问题是

“给出以下数组声明,以下内容将打印出来”

我以为会是对,错,是,但是在复制并粘贴代码后,发现答案是错,错,是。

我知道==只有当它们是对象的相同实例时,才有效,但是我不明白为什么first
on是false。我尝试在数组api中找到该方法,但找不到具有相同参数的方法。

如果这很明显,请原谅我,我在过去的几个晚上学习已经很晚了,此刻非常讨厌咖啡因。

int[] d = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
int[] c = d;
System.out.println(d.equals(b));
System.out.println(d == b);
System.out.println(d == c);

问题答案:

基本上,数组类型不会覆盖equals以提供值相等…因此,您最终得到Object中的默认实现,即引用相等。

对于数组中的值相等(即,相同顺序的相等元素),请在Arrays类中使用静态方法。



 类似资料:
  • 问题内容: 我在一个教程中找到了这个示例。 当我运行此程序时,我的hs.size()值为2 ..,并且equals方法仅被调用一次。有人解释了我何时在HashSet中调用equal()方法 当上述程序中的equal方法调用时 问题答案: 您的代码将调用的唯一一次。另一次调用方法将是对的类。 此答案说明何时由和何时调用方法。摘录: HashSet利用哈希码来加快处理速度。假定彼此相等的两个对象将具有

  • 问题内容: 我写Java已有一段时间了,今天我遇到了以下声明: 请注意数组声明中的“点点点”,而不是通常的括号[]。显然可以。实际上,我写了一个小测试并验证了它的有效性。因此,我提取了Java语法,以查看参数声明语法的位置,但未找到任何内容。 那么对那里的专家来说,这是如何工作的呢?它是语法的一部分吗?另外,虽然我可以像这样声明函数,但不能像这样在函数体内声明数组。 无论如何,您知道在哪里记录了此

  • 问题内容: 我很好奇java如何通过使用Object API的hashCode()方法生成哈希值? 问题答案: Java不会生成hashCode(),即此处没有自动发生的情况。但是,根据对象实例的内存地址生成HashCode。大多数类(尤其是如果要在任何API中使用它的类)都应该实现自己的HashCode(并通过契约使用自己的equals方法)。

  • 该方法返回一个布尔值,表示一个字符串是否等于另一个字符串。 如果字符串相等,则返回值true,否则返回false值。 语法 (Syntax) equal(str1,str2) 参数 (Parameters) str1,str2 - 需要比较的2个字符串。 返回值 (Return Value) 如果2个字符串相等,则返回true值,否则返回false值。 例如 (For example) -mod

  • 如果我使用,但和两个参数等于supplier,它就会运行。 如何使在方法中工作?

  • 问题内容: 当前,在很多情况下,我需要验证页面(及其所有元素)是否正确显示。WebElement 的方法似乎是执行此操作的逻辑方法,但是我想精确地了解此方法在确定是否“显示”元素时正在做什么。所述的Javadoc不会洒在幅材上的方法和其它信息的内部工作的任何光出现在最好是稀疏的。 如果有人能提供这种方法的详细说明,我将不胜感激。 问题答案: WebDriver有其自己的W3C规范。 确定可见性的部