【问题标题】:.equals method and Java String Pool [duplicate].equals 方法和 Java 字符串池 [重复]
【发布时间】:2021-01-26 12:27:51
【问题描述】:

字符串 a = "测试";

为什么 “测试”.equals(a) 真的吗?

“test”.equals(a) 中的“test”是否从字符串池中获得与 a 相同的引用? 谢谢

【问题讨论】:

  • 您提出的第二个问题与实际问题无关(或相反)。 equals 应该进行逻辑上有意义的比较,因此 "test" 等于 a 确实有意义,因为它们具有相同的值,字符串池和字符串比较在这里实际上无关紧要。您正在混合两个完全不相关的主题。
  • 为什么不是真的?

标签: java


【解决方案1】:

equals for String 不做引用比较,只做一个值。

对于你创建的其他类,如果你不覆盖equals和hashcode,它会做一个引用比较,否则它会调用你的覆盖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2013-10-25
    • 2019-01-03
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多