【问题标题】:Object equality(object referece "==") [duplicate]对象相等(对象引用“==”)[重复]
【发布时间】:2023-04-05 14:23:01
【问题描述】:

我在eclipse中写了这段代码:

String[] s = {"a","b"}; String d = "a"; System.out.println(s[0]==d);

它给出“真”作为输出。

"==" 检查对象引用,如果两个对象都引用同一个对象,但是在这种情况下,对象“d”指的是不同的对象,而“s[0]”是指不同的对象,那么它们为什么相等。

【问题讨论】:

  • 提问前先做一些功课。
  • @almasshaikh 正在寻找答案而不是评论。
  • 答案在于评论。如果你可以用谷歌搜索并且你会得到上面的链接,这就是你的问题被标记为重复的原因。

标签: java string object operators equality


【解决方案1】:

"a" 将在 JVM 使用的字符串池中创建。

作为一种优化,只会创建该字符串的一个实例。 Java 可以做到这一点,因为字符串是不可变的。这就是引用引用相同底层对象的原因,所以在这个特定的实例中,引用比较相等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2012-05-11
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多