gpt4 book ai didi

java - 字符串实习生的行为?

转载 作者:行者123 更新时间:2023-12-01 16:53:10 24 4
gpt4 key购买 nike

String string1="Hello Snehal";
String string2=new String("Hello Snehal");
String string3=string2.intern();


System.out.println("string1==string2 " + string1==string2); // false. OK.
System.out.println("string2==string3 " + string2==string3); // false. OK.
System.out.println("string1==string3 " + string1==string3); // false. why not TRUE?

当搜索其他问题以进行澄清时,例如When should we use intern method of String on String constants ,仍然没有得到关于第三个案例的线索。

最佳答案

所有这些都是,因为发生的事情很少检查是否:

  • "string1==string2 "+ string1 引用 string2(对于第一个语句)
  • "string2==string3 "+ string2 引用 string3(对于第二个)
  • "string1==string3 "+ string1 引用 string1(最后一个)。

您需要包装 stringX == stringY 部分,因为否则字符串连接将首先发生(正如您可能已经知道的,Java 中的语句是从左到右计算的,并包装一些带括号的 () 赋予它们优先级)。

所以,有了这个:

System.out.println("string1==string2  " +  (string1==string2)); 
System.out.println("string2==string3 " + (string2==string3));
System.out.println("string1==string3 " + (string1==string3));

应该表现不同,然后您应该能够调查输出。

关于java - 字符串实习生的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36282153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com